]> granicus.if.org Git - php/commitdiff
- fix bug #55169, mcrypt_create_iv always fails to gather sufficient random data
authorPierre Joye <pajoye@php.net>
Sun, 10 Jul 2011 14:36:32 +0000 (14:36 +0000)
committerPierre Joye <pajoye@php.net>
Sun, 10 Jul 2011 14:36:32 +0000 (14:36 +0000)
NEWS
win32/winutil.c

diff --git a/NEWS b/NEWS
index fdfb050a5bec8ddef91dd709dc5491b01e92b8fc..154d3a092cfc0890da05a498308ef111fa77c3ff 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -15,6 +15,8 @@ PHP                                                                        NEWS
 - MCrypt
   . Change E_ERROR to E_WARNING in mcrypt_create_iv when not enough data
     has been fetched (Windows). (Pierre)
+  . Fixed bug #55169 (mcrypt_create_iv always fails to gather sufficient random 
+    data on Windows). (Pierre)
 
 - PDO DBlib:
   . Fixed bug #54329 (MSSql extension memory leak).
index adc5d1b66bca1f27546e8a841889e26354bc63e3..c6ec942969a507f4637bf9fb25f0c2a685216dac 100644 (file)
@@ -87,7 +87,7 @@ PHPAPI int php_win32_get_random_bytes(unsigned char *buf, size_t size) {  /* {{{
 #endif
 
        if (has_crypto_ctx == 0) {
-               if (!CryptAcquireContext(&hCryptProv, NULL, NULL, PROV_RSA_FULL, CRYPT_MACHINE_KEYSET)) {
+               if (!CryptAcquireContext(&hCryptProv, NULL, NULL, PROV_RSA_FULL, 0)) {
                        /* Could mean that the key container does not exist, let try 
                                 again by asking for a new one */
                        if (GetLastError() == NTE_BAD_KEYSET) {
@@ -97,6 +97,8 @@ PHPAPI int php_win32_get_random_bytes(unsigned char *buf, size_t size) {  /* {{{
                                        has_crypto_ctx = 0;
                                }
                        }
+               } else {
+                       has_crypto_ctx = 1;
                }
        }