From: Pierre Joye Date: Tue, 19 Jul 2011 23:01:41 +0000 (+0000) Subject: - re apply the rng change specific to windows, long term it should be a std function... X-Git-Tag: php-5.4.0alpha3~103 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=b03817afb5c2bc8808dd402f1d9b0d1e51401da4;p=php - re apply the rng change specific to windows, long term it should be a std function but as this function was badly introduced in the 1st place, we have to fix the bad things here instead, pls do not revert again, bad idea. --- diff --git a/ext/openssl/openssl.c b/ext/openssl/openssl.c index f8266a381c..b41d04c3bb 100644 --- a/ext/openssl/openssl.c +++ b/ext/openssl/openssl.c @@ -4930,10 +4930,19 @@ 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); + RETURN_FALSE; + } +#else if ((strong_result = RAND_pseudo_bytes(buffer, buffer_length)) < 0) { efree(buffer); RETURN_FALSE; } +#endif buffer[buffer_length] = 0; RETVAL_STRINGL((char *)buffer, buffer_length, 0);