[PHP-CVS] svn: /php/php-src/ branches/PHP_5_3/ext/json/json.c branches/PHP_5_3/ext/json/tests/bug54058.phpt trunk/ext/json/json.c trunk/ext/json/tests/bug54058.phpt
scottmac Mon, 21 Feb 2011 08:09:02 + Revision: http://svn.php.net/viewvc?view=revisionrevision=308529 Log: Fix Bug #54058, invalid utf-8 doesn't set json_encode() in all cases Bug: http://bugs.php.net/54058 (Open) json_last_error() doesn't work properly with arrays/objects Changed paths: U php/php-src/branches/PHP_5_3/ext/json/json.c A php/php-src/branches/PHP_5_3/ext/json/tests/bug54058.phpt U php/php-src/trunk/ext/json/json.c A php/php-src/trunk/ext/json/tests/bug54058.phpt Modified: php/php-src/branches/PHP_5_3/ext/json/json.c === --- php/php-src/branches/PHP_5_3/ext/json/json.c2011-02-21 07:36:26 UTC (rev 308528) +++ php/php-src/branches/PHP_5_3/ext/json/json.c2011-02-21 08:09:02 UTC (rev 308529) @@ -431,7 +431,6 @@ PHP_JSON_API void php_json_encode(smart_str *buf, zval *val, int options TSRMLS_DC) /* {{{ */ { - JSON_G(error_code) = PHP_JSON_ERROR_NONE; switch (Z_TYPE_P(val)) { case IS_NULL: @@ -567,6 +566,8 @@ return; } + JSON_G(error_code) = PHP_JSON_ERROR_NONE; + php_json_encode(buf, parameter, options TSRMLS_CC); ZVAL_STRINGL(return_value, buf.c, buf.len, 1); Added: php/php-src/branches/PHP_5_3/ext/json/tests/bug54058.phpt === --- php/php-src/branches/PHP_5_3/ext/json/tests/bug54058.phpt (rev 0) +++ php/php-src/branches/PHP_5_3/ext/json/tests/bug54058.phpt 2011-02-21 08:09:02 UTC (rev 308529) @@ -0,0 +1,35 @@ +--TEST-- +Bug #54058 (json_last_error() invalid UTF-8 produces wrong error) +--SKIPIF-- +?php if (!extension_loaded(json)) print skip; ? +--FILE-- +?php + +$bad_utf8 = quoted_printable_decode('=B0'); + +json_encode($bad_utf8); +var_dump(json_last_error()); + +$a = new stdclass; +$a-foo = quoted_printable_decode('=B0'); +json_encode($a); +var_dump(json_last_error()); + +$b = new stdclass; +$b-foo = $bad_utf8; +$b-bar = 1; +json_encode($b); +var_dump(json_last_error()); + +$c = array( +'foo' = $bad_utf8, +'bar' = 1 +); +json_encode($c); +var_dump(json_last_error()); +? +--EXPECTF-- +int(5) +int(5) +int(5) +int(5) Modified: php/php-src/trunk/ext/json/json.c === --- php/php-src/trunk/ext/json/json.c 2011-02-21 07:36:26 UTC (rev 308528) +++ php/php-src/trunk/ext/json/json.c 2011-02-21 08:09:02 UTC (rev 308529) @@ -538,7 +538,6 @@ PHP_JSON_API void php_json_encode(smart_str *buf, zval *val, int options TSRMLS_DC) /* {{{ */ { - JSON_G(error_code) = PHP_JSON_ERROR_NONE; switch (Z_TYPE_P(val)) { case IS_NULL: @@ -680,6 +679,8 @@ return; } + JSON_G(error_code) = PHP_JSON_ERROR_NONE; + php_json_encode(buf, parameter, options TSRMLS_CC); ZVAL_STRINGL(return_value, buf.c, buf.len, 1); Added: php/php-src/trunk/ext/json/tests/bug54058.phpt === --- php/php-src/trunk/ext/json/tests/bug54058.phpt (rev 0) +++ php/php-src/trunk/ext/json/tests/bug54058.phpt 2011-02-21 08:09:02 UTC (rev 308529) @@ -0,0 +1,35 @@ +--TEST-- +Bug #54058 (json_last_error() invalid UTF-8 produces wrong error) +--SKIPIF-- +?php if (!extension_loaded(json)) print skip; ? +--FILE-- +?php + +$bad_utf8 = quoted_printable_decode('=B0'); + +json_encode($bad_utf8); +var_dump(json_last_error()); + +$a = new stdclass; +$a-foo = quoted_printable_decode('=B0'); +json_encode($a); +var_dump(json_last_error()); + +$b = new stdclass; +$b-foo = $bad_utf8; +$b-bar = 1; +json_encode($b); +var_dump(json_last_error()); + +$c = array( +'foo' = $bad_utf8, +'bar' = 1 +); +json_encode($c); +var_dump(json_last_error()); +? +--EXPECTF-- +int(5) +int(5) +int(5) +int(5) -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] svn: /php/php-src/ branches/PHP_5_3/NEWS branches/PHP_5_3/ext/openssl/openssl.c branches/PHP_5_3/ext/openssl/tests/bug54060.phpt trunk/ext/openssl/openssl.c trunk/ext/openssl/tests/bug54060.
pajoye Mon, 21 Feb 2011 10:07:31 + Revision: http://svn.php.net/viewvc?view=revisionrevision=308531 Log: - fix bug #54060, memory leak in openssl_encrypt Bug: http://bugs.php.net/54060 (Open) Memory leaks when openssl_encrypt called Changed paths: U php/php-src/branches/PHP_5_3/NEWS U php/php-src/branches/PHP_5_3/ext/openssl/openssl.c A php/php-src/branches/PHP_5_3/ext/openssl/tests/bug54060.phpt U php/php-src/trunk/ext/openssl/openssl.c A php/php-src/trunk/ext/openssl/tests/bug54060.phpt Modified: php/php-src/branches/PHP_5_3/NEWS === --- php/php-src/branches/PHP_5_3/NEWS 2011-02-21 08:12:33 UTC (rev 308530) +++ php/php-src/branches/PHP_5_3/NEWS 2011-02-21 10:07:31 UTC (rev 308531) @@ -8,6 +8,8 @@ - Exif extension: . Fixed bug #54002 (crash on crafted tag, reported by Luca Carettoni). (Pierre) (CVE-2011-0708) +- OpenSSL extension: + . Fixed bug #54060 (Memory leaks when openssl_encrypt). (Pierre) - SPL extension: . Fixed memory leak in DirectoryIterator::getExtension() and Modified: php/php-src/branches/PHP_5_3/ext/openssl/openssl.c === --- php/php-src/branches/PHP_5_3/ext/openssl/openssl.c 2011-02-21 08:12:33 UTC (rev 308530) +++ php/php-src/branches/PHP_5_3/ext/openssl/openssl.c 2011-02-21 10:07:31 UTC (rev 308531) @@ -4731,6 +4731,7 @@ if (free_iv) { efree(iv); } + EVP_CIPHER_CTX_cleanup(cipher_ctx); } /* }}} */ Added: php/php-src/branches/PHP_5_3/ext/openssl/tests/bug54060.phpt === --- php/php-src/branches/PHP_5_3/ext/openssl/tests/bug54060.phpt (rev 0) +++ php/php-src/branches/PHP_5_3/ext/openssl/tests/bug54060.phpt 2011-02-21 10:07:31 UTC (rev 308531) @@ -0,0 +1,17 @@ +--TEST-- +Bug #54060 (Memory leak in openssl_encrypt) +--SKIPIF-- +?php if (!extension_loaded(openssl)) die(skip); ? +--FILE-- +?php + +$data = jfdslkjvflsdkjvlkfjvlkjfvlkdm,4w 043920r 9234r 32904r 09243 +r7-89437 r892374 r894372 r894 7289r7 f frwerfh i iurf iuryw uyrfouiwy ruy +972439 8478942 yrhfjkdhls; +$pass = r23498rui324hjbnkj; + +openssl_encrypt($data, 'des3', $pass, false, '1qazxsw2'); +echo Done; +? +--EXPECT-- +Done Modified: php/php-src/trunk/ext/openssl/openssl.c === --- php/php-src/trunk/ext/openssl/openssl.c 2011-02-21 08:12:33 UTC (rev 308530) +++ php/php-src/trunk/ext/openssl/openssl.c 2011-02-21 10:07:31 UTC (rev 308531) @@ -4741,6 +4741,7 @@ if (free_iv) { efree(iv); } + EVP_CIPHER_CTX_cleanup(cipher_ctx); } /* }}} */ Added: php/php-src/trunk/ext/openssl/tests/bug54060.phpt === --- php/php-src/trunk/ext/openssl/tests/bug54060.phpt (rev 0) +++ php/php-src/trunk/ext/openssl/tests/bug54060.phpt 2011-02-21 10:07:31 UTC (rev 308531) @@ -0,0 +1,17 @@ +--TEST-- +Bug #54060 (Memory leak in openssl_encrypt) +--SKIPIF-- +?php if (!extension_loaded(openssl)) die(skip); ? +--FILE-- +?php + +$data = jfdslkjvflsdkjvlkfjvlkjfvlkdm,4w 043920r 9234r 32904r 09243 +r7-89437 r892374 r894372 r894 7289r7 f frwerfh i iurf iuryw uyrfouiwy ruy +972439 8478942 yrhfjkdhls; +$pass = r23498rui324hjbnkj; + +openssl_encrypt($data, 'des3', $pass, false, '1qazxsw2'); +echo Done; +? +--EXPECT-- +Done -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] svn: /php/php-src/branches/PHP_5_3/ext/openssl/ openssl.c
pajoye Mon, 21 Feb 2011 10:09:50 + Revision: http://svn.php.net/viewvc?view=revisionrevision=308532 Log: - fix test 025 Changed paths: U php/php-src/branches/PHP_5_3/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 2011-02-21 10:07:31 UTC (rev 308531) +++ php/php-src/branches/PHP_5_3/ext/openssl/openssl.c 2011-02-21 10:09:50 UTC (rev 308532) @@ -3543,14 +3543,13 @@ char * outfilename; int outfilename_len; char * extracertsfilename = NULL; int extracertsfilename_len; - RETVAL_FALSE; - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, ssZZa!|ls, infilename, infilename_len, outfilename, outfilename_len, zcert, zprivkey, zheaders, flags, extracertsfilename, extracertsfilename_len) == FAILURE) { return; } + RETVAL_FALSE; if (strlen(infilename) != infilename_len) { return; -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] svn: /php/php-src/ branches/PHP_5_3/NEWS branches/PHP_5_3/ext/openssl/openssl.c trunk/ext/openssl/openssl.c
pajoye Mon, 21 Feb 2011 12:47:38 + Revision: http://svn.php.net/viewvc?view=revisionrevision=308534 Log: - fix bug #54061, memory leak in openssl_decrypt Bug: http://bugs.php.net/54061 (unknown) Changed paths: U php/php-src/branches/PHP_5_3/NEWS 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/NEWS === --- php/php-src/branches/PHP_5_3/NEWS 2011-02-21 10:19:38 UTC (rev 308533) +++ php/php-src/branches/PHP_5_3/NEWS 2011-02-21 12:47:38 UTC (rev 308534) @@ -8,8 +8,10 @@ - Exif extension: . Fixed bug #54002 (crash on crafted tag, reported by Luca Carettoni). (Pierre) (CVE-2011-0708) + - OpenSSL extension: . Fixed bug #54060 (Memory leaks when openssl_encrypt). (Pierre) + . Fixed bug #54061 (Memory leaks when openssl_decrypt). (Pierre) - SPL extension: . Fixed memory leak in DirectoryIterator::getExtension() and Modified: php/php-src/branches/PHP_5_3/ext/openssl/openssl.c === --- php/php-src/branches/PHP_5_3/ext/openssl/openssl.c 2011-02-21 10:19:38 UTC (rev 308533) +++ php/php-src/branches/PHP_5_3/ext/openssl/openssl.c 2011-02-21 12:47:38 UTC (rev 308534) @@ -4804,6 +4804,7 @@ if (base64_str) { efree(base64_str); } + EVP_CIPHER_CTX_cleanup(cipher_ctx); } /* }}} */ Modified: php/php-src/trunk/ext/openssl/openssl.c === --- php/php-src/trunk/ext/openssl/openssl.c 2011-02-21 10:19:38 UTC (rev 308533) +++ php/php-src/trunk/ext/openssl/openssl.c 2011-02-21 12:47:38 UTC (rev 308534) @@ -4815,6 +4815,7 @@ if (base64_str) { efree(base64_str); } + EVP_CIPHER_CTX_cleanup(cipher_ctx); } /* }}} */ -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] svn: /php/php-src/ branches/PHP_5_3/ext/openssl/tests/bug54061.phpt trunk/ext/openssl/tests/bug54061.phpt
pajoye Mon, 21 Feb 2011 12:50:26 + Revision: http://svn.php.net/viewvc?view=revisionrevision=308535 Log: - fix bug #54061, memory leak in openssl_decrypt Bug: http://bugs.php.net/54061 (unknown) Changed paths: A php/php-src/branches/PHP_5_3/ext/openssl/tests/bug54061.phpt A php/php-src/trunk/ext/openssl/tests/bug54061.phpt Added: php/php-src/branches/PHP_5_3/ext/openssl/tests/bug54061.phpt === --- php/php-src/branches/PHP_5_3/ext/openssl/tests/bug54061.phpt (rev 0) +++ php/php-src/branches/PHP_5_3/ext/openssl/tests/bug54061.phpt 2011-02-21 12:50:26 UTC (rev 308535) @@ -0,0 +1,17 @@ +--TEST-- +Bug #54061 (Memory leak in openssl_decrypt) +--SKIPIF-- +?php if (!extension_loaded(openssl)) die(skip); ? +--FILE-- +?php +$data = jfdslkjvflsdkjvlkfjvlkjfvlkdm,4w 043920r 9234r 32904r 09243 +r7-89437 r892374 r894372 r894 7289r7 f frwerfh i iurf iuryw uyrfouiwy ruy +972439 8478942 yrhfjkdhls; +$pass = r23498rui324hjbnkj; + +$cr = openssl_encrypt($data, 'des3', $pass, false, '1qazxsw2'); +$dcr = openssl_decrypt($cr, 'des3', $pass, false, '1qazxsw2'); +echo Done; +? +--EXPECT-- +Done Added: php/php-src/trunk/ext/openssl/tests/bug54061.phpt === --- php/php-src/trunk/ext/openssl/tests/bug54061.phpt (rev 0) +++ php/php-src/trunk/ext/openssl/tests/bug54061.phpt 2011-02-21 12:50:26 UTC (rev 308535) @@ -0,0 +1,17 @@ +--TEST-- +Bug #54061 (Memory leak in openssl_decrypt) +--SKIPIF-- +?php if (!extension_loaded(openssl)) die(skip); ? +--FILE-- +?php +$data = jfdslkjvflsdkjvlkfjvlkjfvlkdm,4w 043920r 9234r 32904r 09243 +r7-89437 r892374 r894372 r894 7289r7 f frwerfh i iurf iuryw uyrfouiwy ruy +972439 8478942 yrhfjkdhls; +$pass = r23498rui324hjbnkj; + +$cr = openssl_encrypt($data, 'des3', $pass, false, '1qazxsw2'); +$dcr = openssl_decrypt($cr, 'des3', $pass, false, '1qazxsw2'); +echo Done; +? +--EXPECT-- +Done -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] svn: /php/php-src/ branches/PHP_5_3/ext/mysqlnd/mysqlnd_result.c trunk/ext/mysqlnd/mysqlnd_result.c
andrey Mon, 21 Feb 2011 16:24:37 + Revision: http://svn.php.net/viewvc?view=revisionrevision=308540 Log: fix invalid memory read. Thank you, valgrind Changed paths: U php/php-src/branches/PHP_5_3/ext/mysqlnd/mysqlnd_result.c U php/php-src/trunk/ext/mysqlnd/mysqlnd_result.c Modified: php/php-src/branches/PHP_5_3/ext/mysqlnd/mysqlnd_result.c === --- php/php-src/branches/PHP_5_3/ext/mysqlnd/mysqlnd_result.c 2011-02-21 15:56:25 UTC (rev 308539) +++ php/php-src/branches/PHP_5_3/ext/mysqlnd/mysqlnd_result.c 2011-02-21 16:24:37 UTC (rev 308540) @@ -1271,7 +1271,7 @@ /* libmysql's documentation says it should be so for SELECT statements */ conn-upsert_status.affected_rows = set-row_count; } - DBG_INF_FMT(ret=%s row_count=MYSQLND_LLU_SPEC warnings=%u server_status=%u, + DBG_INF_FMT(ret=%s row_count=%u warnings=%u server_status=%u, ret == PASS? PASS:FAIL, (uint) set-row_count, conn-upsert_status.warning_count, conn-upsert_status.server_status); end: PACKET_FREE(row_packet); Modified: php/php-src/trunk/ext/mysqlnd/mysqlnd_result.c === --- php/php-src/trunk/ext/mysqlnd/mysqlnd_result.c 2011-02-21 15:56:25 UTC (rev 308539) +++ php/php-src/trunk/ext/mysqlnd/mysqlnd_result.c 2011-02-21 16:24:37 UTC (rev 308540) @@ -1271,7 +1271,7 @@ /* libmysql's documentation says it should be so for SELECT statements */ conn-upsert_status.affected_rows = set-row_count; } - DBG_INF_FMT(ret=%s row_count=MYSQLND_LLU_SPEC warnings=%u server_status=%u, + DBG_INF_FMT(ret=%s row_count=%u warnings=%u server_status=%u, ret == PASS? PASS:FAIL, (uint) set-row_count, conn-upsert_status.warning_count, conn-upsert_status.server_status); end: PACKET_FREE(row_packet); -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php