Date: Tue, 5 Feb 2002 23:40:38 -0500 (EST) From: Robert Watson <rwatson@freebsd.org> To: Alfred Perlstein <bright@mu.org> Cc: "Daniel O'Connor" <doconnor@gsoft.com.au>, cvs-all@freebsd.org, cvs-committers@freebsd.org, des@freebsd.org, Mark Murray <mark@grondar.za>, "Andrey A. Chernov" <ache@nagual.pp.ru> Subject: Re: cvs commit: src/lib/libpam/modules/pam_unix pam_unix.c Message-ID: <Pine.NEB.3.96L.1020205234010.67775C-100000@fledge.watson.org> In-Reply-To: <20020205172633.B59017@elvis.mu.org>
next in thread | previous in thread | raw e-mail | index | archive | help
Mind you, none of this is thread safe, but thread safe is not exactly a
feature of many of our library interfaces :-).
Robert N M Watson FreeBSD Core Team, TrustedBSD Project
robert@fledge.watson.org NAI Labs, Safeport Network Services
On Tue, 5 Feb 2002, Alfred Perlstein wrote:
> * Daniel O'Connor <doconnor@gsoft.com.au> [020205 17:25] wrote:
> >
> > On 05-Feb-2002 Alfred Perlstein wrote:
> > >> To see the bug, run following test application with "call_pam" set to 1
> > >> and 0
> > >
> > > I understand the issue you're bringing up, would it make sense
> > > to create/utilize a save/restore random() context function?
> >
> > No need to create one..
> > setstate() returns the old state which can then be passed back to setstate().
>
> Andrey, can you use this then?
>
> >
> > eg..
> > #include <stdlib.h>
> > #include <stdio.h>
> >
> > void foo(void);
> >
> > int
> > main(int argc, char **argv) {
> > printf("%ld\n", random());
> > foo();
> > printf("%ld\n", random());
> > printf("%ld\n", random());
> > foo();
> > printf("%ld\n", random());
> > }
> >
> > void
> > foo(void) {
> > char *rndstate;
> > char state[16];
> >
> > rndstate = initstate(123456789, state, sizeof(state));
> > if (rndstate == NULL) {
> > printf("Unable to reseed\n");
> > exit(1);
> > }
> > srandomdev();
> >
> > printf("foo - %ld\n", random());
> >
> > setstate(rndstate);
> > }
> >
> > ---
> > Daniel O'Connor software and network engineer
> > for Genesis Software - http://www.gsoft.com.au
> > "The nice thing about standards is that there
> > are so many of them to choose from."
> > -- Andrew Tanenbaum
>
> --
> -Alfred Perlstein [alfred@freebsd.org]
> 'Instead of asking why a piece of software is using "1970s technology,"
> start asking why software is ignoring 30 years of accumulated wisdom.'
> Tax deductable donations for FreeBSD: http://www.freebsdfoundation.org/
>
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe cvs-all" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.NEB.3.96L.1020205234010.67775C-100000>
