Date: Wed, 06 Feb 2002 11:55:21 +1030 (CST) From: "Daniel O'Connor" <doconnor@gsoft.com.au> To: Alfred Perlstein <bright@mu.org> Cc: 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: <XFMail.20020206115521.doconnor@gsoft.com.au> In-Reply-To: <20020205134833.T59017@elvis.mu.org>
next in thread | previous in thread | raw e-mail | index | archive | help
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(). 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 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?XFMail.20020206115521.doconnor>