tony2001 Fri Sep 16 13:11:05 2005 EDT Modified files: (Branch: PHP_5_1) /php-src/ext/standard http.c var.c /php-src/ext/soap php_encoding.c /php-src/ext/wddx wddx.c Log: fix #34505 (possible memory corruption when unmangling properties with empty names) 2nd part http://cvs.php.net/diff.php/php-src/ext/standard/http.c?r1=1.14&r2=1.14.2.1&ty=u Index: php-src/ext/standard/http.c diff -u php-src/ext/standard/http.c:1.14 php-src/ext/standard/http.c:1.14.2.1 --- php-src/ext/standard/http.c:1.14 Wed Aug 3 10:08:04 2005 +++ php-src/ext/standard/http.c Fri Sep 16 13:10:58 2005 @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: http.c,v 1.14 2005/08/03 14:08:04 sniper Exp $ */ +/* $Id: http.c,v 1.14.2.1 2005/09/16 17:10:58 tony2001 Exp $ */ #include "php_http.h" #include "php_ini.h" @@ -69,7 +69,7 @@ /* private or protected property access outside of the class */ continue; } - zend_unmangle_property_name(key, &tmp, &key); + zend_unmangle_property_name_ex(key, key_len, &tmp, &key); key_len = strlen(key); } http://cvs.php.net/diff.php/php-src/ext/standard/var.c?r1=1.203.2.2&r2=1.203.2.3&ty=u Index: php-src/ext/standard/var.c diff -u php-src/ext/standard/var.c:1.203.2.2 php-src/ext/standard/var.c:1.203.2.3 --- php-src/ext/standard/var.c:1.203.2.2 Mon Sep 12 03:13:54 2005 +++ php-src/ext/standard/var.c Fri Sep 16 13:10:58 2005 @@ -18,7 +18,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: var.c,v 1.203.2.2 2005/09/12 07:13:54 dmitry Exp $ */ +/* $Id: var.c,v 1.203.2.3 2005/09/16 17:10:58 tony2001 Exp $ */ @@ -76,7 +76,7 @@ if (hash_key->nKeyLength ==0 ) { /* numeric key */ php_printf("%*c[%ld]=>\n", level + 1, ' ', hash_key->h); } else { /* string key */ - zend_unmangle_property_name(hash_key->arKey, &class_name, &prop_name); + zend_unmangle_property_name_ex(hash_key->arKey, hash_key->nKeyLength, &class_name, &prop_name); if (class_name) { php_printf("%*c[\"%s", level + 1, ' ', prop_name); if (class_name[0]=='*') { @@ -351,7 +351,7 @@ if (hash_key->nKeyLength != 0) { php_printf("%*c", level + 1, ' '); - zend_unmangle_property_name(hash_key->arKey, &class_name, &prop_name); + zend_unmangle_property_name_ex(hash_key->arKey, hash_key->nKeyLength, &class_name, &prop_name); if (class_name) { if (class_name[0] == '*') { php_printf("protected"); http://cvs.php.net/diff.php/php-src/ext/soap/php_encoding.c?r1=1.103.2.1&r2=1.103.2.2&ty=u Index: php-src/ext/soap/php_encoding.c diff -u php-src/ext/soap/php_encoding.c:1.103.2.1 php-src/ext/soap/php_encoding.c:1.103.2.2 --- php-src/ext/soap/php_encoding.c:1.103.2.1 Wed Aug 24 07:46:11 2005 +++ php-src/ext/soap/php_encoding.c Fri Sep 16 13:11:00 2005 @@ -17,7 +17,7 @@ | Dmitry Stogov <[EMAIL PROTECTED]> | +----------------------------------------------------------------------+ */ -/* $Id: php_encoding.c,v 1.103.2.1 2005/08/24 11:46:11 dmitry Exp $ */ +/* $Id: php_encoding.c,v 1.103.2.2 2005/09/16 17:11:00 tony2001 Exp $ */ #include <time.h> @@ -1669,9 +1669,9 @@ zval **zprop; char *str_key; ulong index; - int key_type; + int key_type, str_key_len; - key_type = zend_hash_get_current_key(prop, &str_key, &index, FALSE); + key_type = zend_hash_get_current_key_ex(prop, &str_key, &str_key_len, &index, FALSE, NULL); zend_hash_get_current_data(prop, (void **)&zprop); property = master_to_xml(get_conversion((*zprop)->type), (*zprop), style, xmlParam); @@ -1682,7 +1682,7 @@ if (Z_TYPE_P(data) == IS_OBJECT) { char *class_name; - zend_unmangle_property_name(str_key, &class_name, &prop_name); + zend_unmangle_property_name_ex(str_key, str_key_len, &class_name, &prop_name); } else { prop_name = str_key; } http://cvs.php.net/diff.php/php-src/ext/wddx/wddx.c?r1=1.119.2.2&r2=1.119.2.3&ty=u Index: php-src/ext/wddx/wddx.c diff -u php-src/ext/wddx/wddx.c:1.119.2.2 php-src/ext/wddx/wddx.c:1.119.2.3 --- php-src/ext/wddx/wddx.c:1.119.2.2 Wed Aug 31 10:31:44 2005 +++ php-src/ext/wddx/wddx.c Fri Sep 16 13:11:02 2005 @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: wddx.c,v 1.119.2.2 2005/08/31 14:31:44 sniper Exp $ */ +/* $Id: wddx.c,v 1.119.2.3 2005/09/16 17:11:02 tony2001 Exp $ */ #include "php.h" @@ -524,7 +524,7 @@ if (zend_hash_get_current_key_ex(HASH_OF(obj), &key, &key_len, &idx, 0, NULL) == HASH_KEY_IS_STRING) { char *class_name, *prop_name; - zend_unmangle_property_name(key, &class_name, &prop_name); + zend_unmangle_property_name_ex(key, key_len, &class_name, &prop_name); php_wddx_serialize_var(packet, *ent, prop_name, strlen(prop_name)+1 TSRMLS_CC); } else { key_len = sprintf(tmp_buf, "%ld", idx);
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php