diff options
author | marha <marha@users.sourceforge.net> | 2011-01-23 20:17:10 +0000 |
---|---|---|
committer | marha <marha@users.sourceforge.net> | 2011-01-23 20:17:10 +0000 |
commit | 1b639dab951fb73d5031aa0c1afb13e8480d1dae (patch) | |
tree | 4e13a4d1e4c609bd01d0bf5d65c6a8acdc3d0c50 /openssl/crypto/rand | |
parent | 51181fb7f4d135d214974bb6611d51f21475eec8 (diff) | |
parent | b680cf39ed5bc37e0eb7eb86ad8599bf92df3f2b (diff) | |
download | vcxsrv-1b639dab951fb73d5031aa0c1afb13e8480d1dae.tar.gz vcxsrv-1b639dab951fb73d5031aa0c1afb13e8480d1dae.tar.bz2 vcxsrv-1b639dab951fb73d5031aa0c1afb13e8480d1dae.zip |
svn merge ^/branches/released .
Diffstat (limited to 'openssl/crypto/rand')
-rw-r--r-- | openssl/crypto/rand/md_rand.c | 11 | ||||
-rw-r--r-- | openssl/crypto/rand/rand_nw.c | 4 | ||||
-rw-r--r-- | openssl/crypto/rand/randfile.c | 4 |
3 files changed, 10 insertions, 9 deletions
diff --git a/openssl/crypto/rand/md_rand.c b/openssl/crypto/rand/md_rand.c index 88088ce73..b2f04ff13 100644 --- a/openssl/crypto/rand/md_rand.c +++ b/openssl/crypto/rand/md_rand.c @@ -476,11 +476,14 @@ static int ssleay_rand_bytes(unsigned char *buf, int num) MD_Update(&m,(unsigned char *)&(md_c[0]),sizeof(md_c)); #ifndef PURIFY /* purify complains */ - /* DO NOT REMOVE THE FOLLOWING CALL TO MD_Update()! */ + /* The following line uses the supplied buffer as a small + * source of entropy: since this buffer is often uninitialised + * it may cause programs such as purify or valgrind to + * complain. So for those builds it is not used: the removal + * of such a small source of entropy has negligible impact on + * security. + */ MD_Update(&m,buf,j); - /* We know that line may cause programs such as - purify and valgrind to complain about use of - uninitialized data. */ #endif k=(st_idx+MD_DIGEST_LENGTH/2)-st_num; diff --git a/openssl/crypto/rand/rand_nw.c b/openssl/crypto/rand/rand_nw.c index f177ffbe8..8d5b8d2e3 100644 --- a/openssl/crypto/rand/rand_nw.c +++ b/openssl/crypto/rand/rand_nw.c @@ -160,8 +160,8 @@ int RAND_poll(void) rdtsc mov tsc, eax } -#else - asm volatile("rdtsc":"=A" (tsc)); +#elif defined(__GNUC__) && __GNUC__>=2 && !defined(OPENSSL_NO_ASM) && !defined(OPENSSL_NO_INLINE_ASM) + asm volatile("rdtsc":"=a"(tsc)::"edx"); #endif RAND_add(&tsc, sizeof(tsc), 1); diff --git a/openssl/crypto/rand/randfile.c b/openssl/crypto/rand/randfile.c index 4ed40b7b7..f9b709e6d 100644 --- a/openssl/crypto/rand/randfile.c +++ b/openssl/crypto/rand/randfile.c @@ -269,7 +269,6 @@ err: const char *RAND_file_name(char *buf, size_t size) { char *s=NULL; - int ok = 0; #ifdef __OpenBSD__ struct stat sb; #endif @@ -298,7 +297,6 @@ const char *RAND_file_name(char *buf, size_t size) BUF_strlcat(buf,"/",size); #endif BUF_strlcat(buf,RFILE,size); - ok = 1; } else buf[0] = '\0'; /* no file name */ @@ -312,7 +310,7 @@ const char *RAND_file_name(char *buf, size_t size) * to something hopefully decent if that isn't available. */ - if (!ok) + if (!buf[0]) if (BUF_strlcpy(buf,"/dev/arandom",size) >= size) { return(NULL); } |