]> granicus.if.org Git - php/commitdiff
Fix bug #70014 - use RAND_bytes instead of deprecated RAND_pseudo_bytes
authorStanislav Malyshev <stas@php.net>
Mon, 27 Jul 2015 00:43:16 +0000 (17:43 -0700)
committerStanislav Malyshev <stas@php.net>
Mon, 27 Jul 2015 00:43:16 +0000 (17:43 -0700)
ext/openssl/openssl.c

index 216a56a59fb2811f620ecef579b512bfa4c8469a..c0e3d8a981501cb87db12c7c6dcdac49d98643e4 100755 (executable)
@@ -5070,7 +5070,6 @@ PHP_FUNCTION(openssl_random_pseudo_bytes)
        long buffer_length;
        unsigned char *buffer = NULL;
        zval *zstrong_result_returned = NULL;
-       int strong_result = 0;
 
        if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l|z", &buffer_length, &zstrong_result_returned) == FAILURE) {
                return;
@@ -5088,7 +5087,6 @@ PHP_FUNCTION(openssl_random_pseudo_bytes)
        buffer = emalloc(buffer_length + 1);
 
 #ifdef PHP_WIN32
-       strong_result = 1;
        /* random/urandom equivalent on Windows */
        if (php_win32_get_random_bytes(buffer, (size_t) buffer_length) == FAILURE) {
                efree(buffer);
@@ -5098,7 +5096,7 @@ PHP_FUNCTION(openssl_random_pseudo_bytes)
                RETURN_FALSE;
        }
 #else
-       if ((strong_result = RAND_pseudo_bytes(buffer, buffer_length)) < 0) {
+       if (RAND_bytes(buffer, buffer_length) <= 0) {
                efree(buffer);
                if (zstrong_result_returned) {
                        ZVAL_BOOL(zstrong_result_returned, 0);
@@ -5111,7 +5109,7 @@ PHP_FUNCTION(openssl_random_pseudo_bytes)
        RETVAL_STRINGL((char *)buffer, buffer_length, 0);
 
        if (zstrong_result_returned) {
-               ZVAL_BOOL(zstrong_result_returned, strong_result);
+               ZVAL_BOOL(zstrong_result_returned, 1);
        }
 }
 /* }}} */