com php-src: Merge branch 'PHP-5.6' into PHP-7.0: ext/wddx/wddx.c

From: Date: Tue, 08 Nov 2016 11:16:39 +0000
Subject: com php-src: Merge branch 'PHP-5.6' into PHP-7.0: ext/wddx/wddx.c
Groups: php.cvs 
Request: Send a blank email to php-cvs+get-95444@lists.php.net to get a copy of this message
Commit: e87daf363b5eb2965a2cb4dec5427a9b83ce88e2 Author: Anatol Belski <ab@php.net> Tue, 8 Nov 2016 12:16:39 +0100 Parents: 2b30b542750a917932fed29cafac83d40a045ffe d6d08f97cddd3bb12e9346c0aa59977c876dae0e Branches: PHP-7.0 PHP-7.1 master Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=e87daf363b5eb2965a2cb4dec5427a9b83ce88e2 Log: Merge branch 'PHP-5.6' into PHP-7.0 * PHP-5.6: fix memory leak Changed paths: MM ext/wddx/wddx.c Diff: diff --cc ext/wddx/wddx.c index e21d178,069ea12..b188e89 --- a/ext/wddx/wddx..c +++ b/ext/wddx/wddx.c @@@ -940,31 -1000,34 +940,32 @@@ static void php_wddx_pop_element(void * if (ent1->varname) { if (!strcmp(ent1->varname, PHP_CLASS_NAME_VAR) && - Z_TYPE_P(ent1->data) == IS_STRING && Z_STRLEN_P(ent1->data) && - ent2->type == ST_STRUCT && Z_TYPE_P(ent2->data) == IS_ARRAY) { + Z_TYPE(ent1->data) == IS_STRING && Z_STRLEN(ent1->data) && + ent2->type == ST_STRUCT && Z_TYPE(ent2->data) == IS_ARRAY) { zend_bool incomplete_class = 0; - zend_str_tolower(Z_STRVAL_P(ent1->data), Z_STRLEN_P(ent1->data)); - if (zend_hash_find(EG(class_table), Z_STRVAL_P(ent1->data), - Z_STRLEN_P(ent1->data)+1, (void **) &pce)==FAILURE) { + zend_str_tolower(Z_STRVAL(ent1->data), Z_STRLEN(ent1->data)); + zend_string_forget_hash_val(Z_STR(ent1->data)); + if ((pce = zend_hash_find_ptr(EG(class_table), Z_STR(ent1->data))) == NULL) { incomplete_class = 1; - pce = &PHP_IC_ENTRY; + pce = PHP_IC_ENTRY; } - if (pce != &PHP_IC_ENTRY && ((*pce)->serialize || (*pce)->unserialize)) { + if (pce != PHP_IC_ENTRY && (pce->serialize || pce->unserialize)) { + zval_ptr_dtor(&ent2->data); - ent2->data = NULL; - php_error_docref(NULL TSRMLS_CC, E_WARNING, "Class %s can not be unserialized", Z_STRVAL_P(ent1->data)); + ZVAL_UNDEF(&ent2->data); + php_error_docref(NULL, E_WARNING, "Class %s can not be unserialized", Z_STRVAL(ent1->data)); } else { /* Initialize target object */ - MAKE_STD_ZVAL(obj); - object_init_ex(obj, *pce); + object_init_ex(&obj, pce); /* Merge current hashtable with object's default properties */ - zend_hash_merge(Z_OBJPROP_P(obj), - Z_ARRVAL_P(ent2->data), - (void (*)(void *)) zval_add_ref, - (void *) &tmp, sizeof(zval *), 0); + zend_hash_merge(Z_OBJPROP(obj), + Z_ARRVAL(ent2->data), + zval_add_ref, 0); if (incomplete_class) { - php_store_class_name(obj, Z_STRVAL_P(ent1->data), Z_STRLEN_P(ent1->data)); + php_store_class_name(&obj, Z_STRVAL(ent1->data), Z_STRLEN(ent1->data)); } /* Clean up old array entry */

« previous php.cvs (#95444) next »