[PHP-CVS] svn: /php/php-src/ branches/PHP_5_2/ext/reflection/tests/ReflectionClass_getConstructor_basic.phpt branches/PHP_5_2/ext/reflection/tests/ReflectionMethod_constructor_basic.phpt branches/PHP_
felipe Tue, 06 Jul 2010 00:25:52 + Revision: http://svn.php.net/viewvc?view=revision&revision=301016 Log: - Fixed tests Changed paths: U php/php-src/branches/PHP_5_2/ext/reflection/tests/ReflectionClass_getConstructor_basic.phpt U php/php-src/branches/PHP_5_2/ext/reflection/tests/ReflectionMethod_constructor_basic.phpt U php/php-src/branches/PHP_5_2/ext/reflection/tests/ReflectionObject_getConstructor_basic.phpt U php/php-src/branches/PHP_5_3/ext/date/tests/DateTimeZone_listAbbreviations_basic1.phpt U php/php-src/branches/PHP_5_3/ext/date/tests/bug51393.phpt U php/php-src/branches/PHP_5_3/ext/date/tests/date_diff.phpt U php/php-src/branches/PHP_5_3/ext/standard/tests/directory/DirectoryClass_basic_001.phpt U php/php-src/trunk/ext/date/tests/DateTimeZone_listAbbreviations_basic1.phpt U php/php-src/trunk/ext/date/tests/bug51393.phpt U php/php-src/trunk/ext/date/tests/date_diff.phpt U php/php-src/trunk/ext/reflection/tests/ReflectionClass_getConstructor_basic.phpt U php/php-src/trunk/ext/reflection/tests/ReflectionMethod_constructor_basic.phpt U php/php-src/trunk/ext/reflection/tests/ReflectionObject_getConstructor_basic.phpt U php/php-src/trunk/ext/standard/tests/directory/DirectoryClass_basic_001.phpt Modified: php/php-src/branches/PHP_5_2/ext/reflection/tests/ReflectionClass_getConstructor_basic.phpt === --- php/php-src/branches/PHP_5_2/ext/reflection/tests/ReflectionClass_getConstructor_basic.phpt 2010-07-05 21:52:21 UTC (rev 301015) +++ php/php-src/branches/PHP_5_2/ext/reflection/tests/ReflectionClass_getConstructor_basic.phpt 2010-07-06 00:25:52 UTC (rev 301016) @@ -64,10 +64,7 @@ ?> --EXPECTF-- - -Strict Standards: Redefining already defined constructor for class OldAndNewCtor in %s on line 26 - -Strict Standards: %s for class NewAndOldCtor in %s on line 31 +Strict Standards: Redefining already defined constructor for class OldAndNewCtor in %s on line %d Constructor of NewCtor: __construct Constructor of ExtendsNewCtor: __construct Constructor of OldCtor: OldCtor @@ -79,4 +76,4 @@ Constructor of D1: __construct Constructor of D2: C No constructor for X -No constructor for Y \ No newline at end of file +No constructor for Y Modified: php/php-src/branches/PHP_5_2/ext/reflection/tests/ReflectionMethod_constructor_basic.phpt === --- php/php-src/branches/PHP_5_2/ext/reflection/tests/ReflectionMethod_constructor_basic.phpt 2010-07-05 21:52:21 UTC (rev 301015) +++ php/php-src/branches/PHP_5_2/ext/reflection/tests/ReflectionMethod_constructor_basic.phpt 2010-07-06 00:25:52 UTC (rev 301016) @@ -88,8 +88,6 @@ ?> --EXPECTF-- Strict Standards: Redefining already defined constructor for class OldAndNewCtor in %s on line %d - -Strict Standards: %s for class NewAndOldCtor in %s on line %d New-style constructor: bool(true) Modified: php/php-src/branches/PHP_5_2/ext/reflection/tests/ReflectionObject_getConstructor_basic.phpt === --- php/php-src/branches/PHP_5_2/ext/reflection/tests/ReflectionObject_getConstructor_basic.phpt 2010-07-05 21:52:21 UTC (rev 301015) +++ php/php-src/branches/PHP_5_2/ext/reflection/tests/ReflectionObject_getConstructor_basic.phpt 2010-07-06 00:25:52 UTC (rev 301016) @@ -64,10 +64,7 @@ ?> --EXPECTF-- - -Strict Standards: Redefining already defined constructor for class OldAndNewCtor in %s on line 26 - -Strict Standards: %s for class NewAndOldCtor in %s on line 31 +Strict Standards: Redefining already defined constructor for class OldAndNewCtor in %s on line %d Constructor of NewCtor: __construct Constructor of ExtendsNewCtor: __construct Constructor of OldCtor: OldCtor Modified: php/php-src/branches/PHP_5_3/ext/date/tests/DateTimeZone_listAbbreviations_basic1.phpt === --- php/php-src/branches/PHP_5_3/ext/date/tests/DateTimeZone_listAbbreviations_basic1.phpt 2010-07-05 21:52:21 UTC (rev 301015) +++ php/php-src/branches/PHP_5_3/ext/date/tests/DateTimeZone_listAbbreviations_basic1.phpt 2010-07-06 00:25:52 UTC (rev 301016) @@ -26,7 +26,7 @@ --EXPECT-- *** Testing DateTimeZone::listAbbreviations() : basic functionality *** string(5) "array" -int(338) +int(399) -- Format a sample entry -- array(4) { Modified: php/php-src/branches/PHP_5_3/ext/date/tests/bug51393.phpt === --- php/php-src/branches/PHP_5_3/ext/date/tests/bug51393.phpt 2010-07-05 21:52:21 UTC (rev 301015) +++ php/php-src/branches/PHP_5_3/ext/date/tests/bug51393.phpt 2010-07-06 00:25:52 UTC (rev 301016) @@ -1,5 +1,7 @@ --TEST-- Bug #51393 (DateTime::createFromFormat() fails if format string contains timezone) +--INI-- +date.timezone=UTC --FILE-- public meth
[PHP-CVS] svn: /php/php-src/trunk/sapi/cgi/ cgi_main.c fastcgi.c fastcgi.h
dmitry Mon, 05 Jul 2010 15:40:54 + Revision: http://svn.php.net/viewvc?view=revision&revision=301003 Log: reduced request processing overhead Changed paths: U php/php-src/trunk/sapi/cgi/cgi_main.c U php/php-src/trunk/sapi/cgi/fastcgi.c U php/php-src/trunk/sapi/cgi/fastcgi.h Modified: php/php-src/trunk/sapi/cgi/cgi_main.c === --- php/php-src/trunk/sapi/cgi/cgi_main.c 2010-07-05 14:32:29 UTC (rev 301002) +++ php/php-src/trunk/sapi/cgi/cgi_main.c 2010-07-05 15:40:54 UTC (rev 301003) @@ -625,10 +625,10 @@ /* turn off magic_quotes while importing environment variables */ PG(magic_quotes_gpc) = 0; - for (zend_hash_internal_pointer_reset_ex(request->env, &pos); - zend_hash_get_current_key_ex(request->env, &var, &var_len, &idx, 0, &pos) == HASH_KEY_IS_STRING && - zend_hash_get_current_data_ex(request->env, (void **) &val, &pos) == SUCCESS; - zend_hash_move_forward_ex(request->env, &pos) + for (zend_hash_internal_pointer_reset_ex(&request->env, &pos); + zend_hash_get_current_key_ex(&request->env, &var, &var_len, &idx, 0, &pos) == HASH_KEY_IS_STRING && + zend_hash_get_current_data_ex(&request->env, (void **) &val, &pos) == SUCCESS; + zend_hash_move_forward_ex(&request->env, &pos) ) { unsigned int new_val_len; Modified: php/php-src/trunk/sapi/cgi/fastcgi.c === --- php/php-src/trunk/sapi/cgi/fastcgi.c2010-07-05 14:32:29 UTC (rev 301002) +++ php/php-src/trunk/sapi/cgi/fastcgi.c2010-07-05 15:40:54 UTC (rev 301003) @@ -638,7 +638,7 @@ memcpy(tmp, p, name_len); tmp[name_len] = 0; s = estrndup((char*)p + name_len, val_len); - zend_hash_update(req->env, tmp, name_len+1, &s, sizeof(char*), NULL); + zend_hash_update(&req->env, tmp, name_len+1, &s, sizeof(char*), NULL); p += name_len + val_len; } if (tmp != buf && tmp != NULL) { @@ -663,8 +663,8 @@ req->in_len = 0; req->out_hdr = NULL; req->out_pos = req->out_buf; - ALLOC_HASHTABLE(req->env); - zend_hash_init(req->env, 0, NULL, (void (*)(void *)) fcgi_free_var, 0); + req->has_env = 1; + zend_hash_init(&req->env, 32, NULL, (void (*)(void *)) fcgi_free_var, 0); if (safe_read(req, &hdr, sizeof(fcgi_header)) != sizeof(fcgi_header) || hdr.version < FCGI_VERSION_1) { @@ -700,16 +700,16 @@ req->keep = (((fcgi_begin_request*)buf)->flags & FCGI_KEEP_CONN); switch fcgi_begin_request*)buf)->roleB1 << 8) + ((fcgi_begin_request*)buf)->roleB0) { case FCGI_RESPONDER: - val = estrdup("RESPONDER"); - zend_hash_update(req->env, "FCGI_ROLE", sizeof("FCGI_ROLE"), &val, sizeof(char*), NULL); + val = estrndup("RESPONDER", sizeof("RESPONDER")-1); + zend_hash_update(&req->env, "FCGI_ROLE", sizeof("FCGI_ROLE"), &val, sizeof(char*), NULL); break; case FCGI_AUTHORIZER: - val = estrdup("AUTHORIZER"); - zend_hash_update(req->env, "FCGI_ROLE", sizeof("FCGI_ROLE"), &val, sizeof(char*), NULL); + val = estrndup("AUTHORIZER", sizeof("AUTHORIZER")-1); + zend_hash_update(&req->env, "FCGI_ROLE", sizeof("FCGI_ROLE"), &val, sizeof(char*), NULL); break; case FCGI_FILTER: - val = estrdup("FILTER"); - zend_hash_update(req->env, "FCGI_ROLE", sizeof("FCGI_ROLE"), &val, sizeof(char*), NULL); + val = estrndup("FILTER", sizeof("FILTER")-1); + zend_hash_update(&req->env, "FCGI_ROLE", sizeof("FCGI_ROLE"), &val, sizeof(char*), NULL); break; default: return 0; @@ -765,10 +765,10 @@ return 0; } - zend_hash_internal_pointer_reset_ex(req->env, &pos); - while ((key_type = zend_hash_get_current_key_ex(req->env, &str_index, &str_length, &num_index, 0, &pos)) != HASH_KEY_NON_EXISTANT) { + zend_hash_internal_pointer_reset_ex(&req->env, &pos); + while ((key_type = zend_hash_get_current_key_ex(&req->env, &str_index, &str_length, &num_index, 0, &pos)) != HASH_KEY_NON_EXISTANT) {
[PHP-CVS] svn: /php/php-src/trunk/ext/standard/ basic_functions.c
dmitry Mon, 05 Jul 2010 14:32:29 + Revision: http://svn.php.net/viewvc?view=revision&revision=301002 Log: Use ZE API to modify/restore PG(magic_quotes_runtime). Removed overhead at request startup. Changed paths: U php/php-src/trunk/ext/standard/basic_functions.c Modified: php/php-src/trunk/ext/standard/basic_functions.c === --- php/php-src/trunk/ext/standard/basic_functions.c2010-07-05 12:03:08 UTC (rev 301001) +++ php/php-src/trunk/ext/standard/basic_functions.c2010-07-05 14:32:29 UTC (rev 301002) @@ -3682,9 +3682,6 @@ PHP_RINIT(dir)(INIT_FUNC_ARGS_PASSTHRU); PHP_RINIT(url_scanner_ex)(INIT_FUNC_ARGS_PASSTHRU); - /* Reset magic_quotes_runtime */ - PG(magic_quotes_runtime) = INI_BOOL("magic_quotes_runtime"); - /* Setup default context */ FG(default_context) = NULL; @@ -4534,7 +4531,9 @@ return; } - PG(magic_quotes_runtime) = new_setting; + if (zend_alter_ini_entry_ex("magic_quotes_runtime", sizeof("magic_quotes_runtime"), new_setting ? "1" : "0", 1, PHP_INI_USER, PHP_INI_STAGE_RUNTIME, 0 TSRMLS_CC) == FAILURE) { + RETURN_FALSE; + } RETURN_TRUE; } /* }}} */ -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] svn: /php/php-src/trunk/ext/mbstring/ mbstring.c php_mbregex.c
dmitry Mon, 05 Jul 2010 12:03:08 + Revision: http://svn.php.net/viewvc?view=revision&revision=301001 Log: Reduced overhead of ext/mbstring initialization Changed paths: U php/php-src/trunk/ext/mbstring/mbstring.c U php/php-src/trunk/ext/mbstring/php_mbregex.c Modified: php/php-src/trunk/ext/mbstring/mbstring.c === --- php/php-src/trunk/ext/mbstring/mbstring.c 2010-07-05 12:00:09 UTC (rev 301000) +++ php/php-src/trunk/ext/mbstring/mbstring.c 2010-07-05 12:03:08 UTC (rev 301001) @@ -1051,58 +1051,42 @@ int _php_mb_ini_mbstring_internal_encoding_set(const char *new_value, uint new_value_length TSRMLS_DC) { enum mbfl_no_encoding no_encoding; - const char *enc_name = NULL; - uint enc_name_len = 0; - no_encoding = new_value ? mbfl_name2no_encoding(new_value): - mbfl_no_encoding_invalid; - if (no_encoding != mbfl_no_encoding_invalid) { - enc_name = new_value; - enc_name_len = new_value_length; - } else { + if (!new_value +|| !*new_value +|| (no_encoding = mbfl_name2no_encoding(new_value)) == mbfl_no_encoding_invalid) { switch (MBSTRG(language)) { case mbfl_no_language_uni: - enc_name = "UTF-8"; - enc_name_len = sizeof("UTF-8") - 1; + no_encoding = mbfl_no_encoding_utf8; break; case mbfl_no_language_japanese: - enc_name = "EUC-JP"; - enc_name_len = sizeof("EUC-JP") - 1; + no_encoding = mbfl_no_encoding_euc_jp; break; case mbfl_no_language_korean: - enc_name = "EUC-KR"; - enc_name_len = sizeof("EUC-KR") - 1; + no_encoding = mbfl_no_encoding_euc_kr; break; case mbfl_no_language_simplified_chinese: - enc_name = "EUC-CN"; - enc_name_len = sizeof("EUC-CN") - 1; + no_encoding = mbfl_no_encoding_euc_cn; break; case mbfl_no_language_traditional_chinese: - enc_name = "EUC-TW"; - enc_name_len = sizeof("EUC-TW") - 1; + no_encoding = mbfl_no_encoding_euc_tw; break; case mbfl_no_language_russian: - enc_name = "KOI8-R"; - enc_name_len = sizeof("KOI8-R") - 1; + no_encoding = mbfl_no_encoding_koi8r; break; case mbfl_no_language_german: - enc_name = "ISO-8859-15"; - enc_name_len = sizeof("ISO-8859-15") - 1; + no_encoding = mbfl_no_encoding_8859_15; break; case mbfl_no_language_armenian: - enc_name = "ArmSCII-8"; - enc_name_len = sizeof("ArmSCII-8") - 1; + no_encoding = mbfl_no_encoding_armscii8; break; case mbfl_no_language_turkish: - enc_name = "ISO-8859-9"; - enc_name_len = sizeof("ISO-8859-9") - 1; + no_encoding = mbfl_no_encoding_8859_9; break; default: - enc_name = "ISO-8859-1"; - enc_name_len = sizeof("ISO-8859-1") - 1; + no_encoding = mbfl_no_encoding_8859_1; break; } - no_encoding = mbfl_name2no_encoding(enc_name); } MBSTRG(internal_encoding) = no_encoding; MBSTRG(current_internal_encoding) = no_encoding; Modified: php/php-src/trunk/ext/mbstring/php_mbregex.c === --- php/php-src/trunk/ext/mbstring/php_mbregex.c2010-07-05 12:00:09 UTC (rev 301000) +++ php/php-src/trunk/ext/mbstring/php_mbregex.c2010-07-05 12:03:08 UTC (rev 301001) @@ -372,7 +372,7 @@ const char *p; php_mb_regex_enc_name_map_t *mapping; - if (pname == NULL) { + if (pname == NULL || !*pname) { return ONIG_ENCODING_UNDEF; } -- PHP CVS Mailing List (http://www.php.net/) To unsubscri
[PHP-CVS] svn: /php/php-src/ branches/PHP_5_2/NEWS branches/PHP_5_2/Zend/tests/bug52237.phpt branches/PHP_5_2/Zend/zend_vm_def.h branches/PHP_5_2/Zend/zend_vm_execute.h branches/PHP_5_3/Zend/tests/bug
dmitry Mon, 05 Jul 2010 09:08:35 + Revision: http://svn.php.net/viewvc?view=revision&revision=300990 Log: Fixed bug #52237 (Crash when passing the reference of the property of a non-object) Bug: http://bugs.php.net/52237 (Assigned) Crash when passing the reference of the property of a non-object Changed paths: U php/php-src/branches/PHP_5_2/NEWS A php/php-src/branches/PHP_5_2/Zend/tests/bug52237.phpt U php/php-src/branches/PHP_5_2/Zend/zend_vm_def.h U php/php-src/branches/PHP_5_2/Zend/zend_vm_execute.h A php/php-src/branches/PHP_5_3/Zend/tests/bug52237.phpt U php/php-src/branches/PHP_5_3/Zend/zend_vm_def.h U php/php-src/branches/PHP_5_3/Zend/zend_vm_execute.h A php/php-src/trunk/Zend/tests/bug52237.phpt U php/php-src/trunk/Zend/zend_vm_def.h U php/php-src/trunk/Zend/zend_vm_execute.h Modified: php/php-src/branches/PHP_5_2/NEWS === --- php/php-src/branches/PHP_5_2/NEWS 2010-07-05 08:11:41 UTC (rev 300989) +++ php/php-src/branches/PHP_5_2/NEWS 2010-07-05 09:08:35 UTC (rev 300990) @@ -4,6 +4,8 @@ - Fixed bug #52238 (Crash when an Exception occured in iterator_to_array). (Johannes) +- Fixed bug #52237 (Crash when passing the reference of the property of a + non-object). (Dmitry) 01 Jul 2010, PHP 5.2.14RC2 - Fixed a possible interruption array leak in strrchr(). Reported by Added: php/php-src/branches/PHP_5_2/Zend/tests/bug52237.phpt === --- php/php-src/branches/PHP_5_2/Zend/tests/bug52237.phpt (rev 0) +++ php/php-src/branches/PHP_5_2/Zend/tests/bug52237.phpt 2010-07-05 09:08:35 UTC (rev 300990) @@ -0,0 +1,10 @@ +--TEST-- +Bug #52237 (Crash when passing the reference of the property of a non-object) +--FILE-- +info); +var_dump($data); +?> +--EXPECT-- +string(4) "test" Modified: php/php-src/branches/PHP_5_2/Zend/zend_vm_def.h === --- php/php-src/branches/PHP_5_2/Zend/zend_vm_def.h 2010-07-05 08:11:41 UTC (rev 300989) +++ php/php-src/branches/PHP_5_2/Zend/zend_vm_def.h 2010-07-05 09:08:35 UTC (rev 300990) @@ -2378,10 +2378,17 @@ zend_error_noreturn(E_ERROR, "Only variables can be passed by reference"); } - if (EX(function_state).function->type == ZEND_INTERNAL_FUNCTION && !ARG_SHOULD_BE_SENT_BY_REF(EX(fbc), opline->op2.u.opline_num)) { - ZEND_VM_DISPATCH_TO_HELPER(zend_send_by_var_helper); -} + if (OP1_TYPE == IS_VAR && *varptr_ptr == EG(error_zval_ptr)) { + (*varptr_ptr)->refcount--; + ALLOC_ZVAL(*varptr_ptr); + INIT_ZVAL(**varptr_ptr); + (*varptr_ptr)->refcount = 0; + } + if (EX(function_state).function->type == ZEND_INTERNAL_FUNCTION && !ARG_SHOULD_BE_SENT_BY_REF(EX(fbc), opline->op2.u.opline_num)) { + ZEND_VM_DISPATCH_TO_HELPER(zend_send_by_var_helper); + } + SEPARATE_ZVAL_TO_MAKE_IS_REF(varptr_ptr); varptr = *varptr_ptr; varptr->refcount++; Modified: php/php-src/branches/PHP_5_2/Zend/zend_vm_execute.h === --- php/php-src/branches/PHP_5_2/Zend/zend_vm_execute.h 2010-07-05 08:11:41 UTC (rev 300989) +++ php/php-src/branches/PHP_5_2/Zend/zend_vm_execute.h 2010-07-05 09:08:35 UTC (rev 300990) @@ -7605,10 +7605,17 @@ zend_error_noreturn(E_ERROR, "Only variables can be passed by reference"); } - if (EX(function_state).function->type == ZEND_INTERNAL_FUNCTION && !ARG_SHOULD_BE_SENT_BY_REF(EX(fbc), opline->op2.u.opline_num)) { - return zend_send_by_var_helper_SPEC_VAR(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); -} + if (IS_VAR == IS_VAR && *varptr_ptr == EG(error_zval_ptr)) { + (*varptr_ptr)->refcount--; + ALLOC_ZVAL(*varptr_ptr); + INIT_ZVAL(**varptr_ptr); + (*varptr_ptr)->refcount = 0; + } + if (EX(function_state).function->type == ZEND_INTERNAL_FUNCTION && !ARG_SHOULD_BE_SENT_BY_REF(EX(fbc), opline->op2.u.opline_num)) { + return zend_send_by_var_helper_SPEC_VAR(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); + } + SEPARATE_ZVAL_TO_MAKE_IS_REF(varptr_ptr); varptr = *varptr_ptr; varptr->refcount++; @@ -20041,10 +20048,17 @@ zend_error_noreturn(E_ERROR, "Only variables can be passed by reference"); } - if (EX(function_state).function->type == ZEND_INTERNAL_FUNCTION && !ARG_SHOULD_BE_SENT_BY_REF(EX(fbc), opline->op2.u.opline_num)) { - return zend_send_by_var_helper_SPEC_CV(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); -} + if (IS_CV == IS_VAR && *varptr_ptr == EG(error_zval_ptr)) { + (*varptr_ptr)->refcount--; + ALLOC_ZVAL(*varptr_ptr); + INIT_ZVAL(**varptr_ptr); + (*varptr_ptr)->refcount = 0; + } + if (EX(function_state).function->type == ZEND_INTERNAL_FUNCTION && !ARG_SHOULD_BE_SENT_BY_REF(EX(fbc), opline->op2.u.opline_num)) { + return zend_send_by_var_helper_SPEC_CV(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); + } + SEPARATE_Z