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>
