From: Wouter Wijngaards Date: Wed, 9 Jan 2008 12:48:03 +0000 (+0000) Subject: seeding bigger to make openssl happy. X-Git-Tag: release-0.9~108 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a67e62dd40bafbf79b9c73bece5f3ded142e53f9;p=thirdparty%2Funbound.git seeding bigger to make openssl happy. git-svn-id: file:///svn/unbound/trunk@831 be551aaa-1e26-0410-a405-d3ace91eadb9 --- diff --git a/util/random.c b/util/random.c index 4998a91e3..7c0e5a6f8 100644 --- a/util/random.c +++ b/util/random.c @@ -104,7 +104,14 @@ ub_initstate(unsigned int seed, struct ub_randstate* state, /* RAND_ is threadsafe, by the way */ if(!RAND_status()) { /* try to seed it */ - RAND_seed(&seed, (int)sizeof(seed)); + unsigned char buf[256]; + unsigned int v = seed; + size_t i; + for(i=0; i<256/sizeof(seed); i++) { + memmove(buf+i*sizeof(seed), &v, sizeof(seed)); + v = v*seed + (unsigned int)i; + } + RAND_seed(buf, 256); if(!RAND_status()) { log_err("Random generator has no entropy (error %ld)", ERR_get_error());