iliaa Tue, 11 May 2010 14:31:00 +0000
Revision: http://svn.php.net/viewvc?view=revision&revision=299244
Log:
Removed double allocation of buffer inside openssl_random_pseudo_bytes() and
cleanup code
Changed paths:
U php/php-src/branches/PHP_5_3/ext/openssl/openssl.c
U php/php-src/trunk/ext/openssl/openssl.c
Modified: php/php-src/branches/PHP_5_3/ext/openssl/openssl.c
===================================================================
--- php/php-src/branches/PHP_5_3/ext/openssl/openssl.c 2010-05-11 14:12:30 UTC
(rev 299243)
+++ php/php-src/branches/PHP_5_3/ext/openssl/openssl.c 2010-05-11 14:31:00 UTC
(rev 299244)
@@ -4785,27 +4785,23 @@
ZVAL_BOOL(zstrong_result_returned, 0);
}
- buffer = emalloc(buffer_length);
+ buffer = emalloc(buffer_length + 1);
- if (!buffer) {
- RETURN_FALSE;
- }
-
#ifdef WINDOWS
RAND_screen();
#endif
if ((strong_result = RAND_pseudo_bytes(buffer, buffer_length)) < 0) {
- RETVAL_FALSE;
- } else {
- RETVAL_STRINGL((char *)buffer, buffer_length, 1);
+ efree(buffer);
+ RETURN_FALSE;
+ }
- if (zstrong_result_returned) {
- ZVAL_BOOL(zstrong_result_returned, strong_result);
- }
+ buffer[buffer_length] = 0;
+ RETVAL_STRINGL((char *)buffer, buffer_length, 0);
+ if (zstrong_result_returned) {
+ ZVAL_BOOL(zstrong_result_returned, strong_result);
}
- efree(buffer);
}
/* }}} */
Modified: php/php-src/trunk/ext/openssl/openssl.c
===================================================================
--- php/php-src/trunk/ext/openssl/openssl.c 2010-05-11 14:12:30 UTC (rev
299243)
+++ php/php-src/trunk/ext/openssl/openssl.c 2010-05-11 14:31:00 UTC (rev
299244)
@@ -4780,27 +4780,23 @@
ZVAL_BOOL(zstrong_result_returned, 0);
}
- buffer = emalloc(buffer_length);
+ buffer = emalloc(buffer_length + 1);
- if (!buffer) {
- RETURN_FALSE;
- }
-
#ifdef WINDOWS
RAND_screen();
#endif
if ((strong_result = RAND_pseudo_bytes(buffer, buffer_length)) < 0) {
- RETVAL_FALSE;
- } else {
- RETVAL_STRINGL((char *)buffer, buffer_length, 1);
+ efree(buffer);
+ RETURN_FALSE;
+ }
- if (zstrong_result_returned) {
- ZVAL_BOOL(zstrong_result_returned, strong_result);
- }
+ buffer[buffer_length] = 0;
+ RETVAL_STRINGL((char *)buffer, buffer_length, 0);
+ if (zstrong_result_returned) {
+ ZVAL_BOOL(zstrong_result_returned, strong_result);
}
- efree(buffer);
}
/* }}} */
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php