diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/util/genrand.c | 24 |
1 files changed, 11 insertions, 13 deletions
diff --git a/lib/util/genrand.c b/lib/util/genrand.c index 3dfaf089d1..0e5902fea9 100644 --- a/lib/util/genrand.c +++ b/lib/util/genrand.c @@ -163,25 +163,23 @@ static void do_filehash(const char *fname, unsigned char *the_hash) above... **************************************************************/ -static int do_reseed(bool use_fd, int fd) +static int do_reseed(int fd) { unsigned char seed_inbuf[40]; uint32_t v1, v2; struct timeval tval; pid_t mypid; int reseed_data = 0; - if (use_fd) { - if (fd == -1) { - fd = open( "/dev/urandom", O_RDONLY,0); - if (fd != -1) { - smb_set_close_on_exec(fd); - } - } - if (fd != -1 - && (read(fd, seed_inbuf, sizeof(seed_inbuf)) == sizeof(seed_inbuf))) { - seed_random_stream(seed_inbuf, sizeof(seed_inbuf)); - return fd; + if (fd == -1) { + fd = open( "/dev/urandom", O_RDONLY,0); + if (fd != -1) { + smb_set_close_on_exec(fd); } } + if (fd != -1 + && (read(fd, seed_inbuf, sizeof(seed_inbuf)) == sizeof(seed_inbuf))) { + seed_random_stream(seed_inbuf, sizeof(seed_inbuf)); + return fd; + } /* Add in some secret file contents */ @@ -244,7 +242,7 @@ _PUBLIC_ void generate_random_buffer(uint8_t *out, int len) } } - urand_fd = do_reseed(true, urand_fd); + urand_fd = do_reseed(urand_fd); done_reseed = true; } |