com php-src: Fixed bug #72943 (assign_dim on string d oesn't reset hval): NEWS Zend/tests/bug729 43.phpt Zend/zend_execute.c

From: Date: Fri, 26 Aug 2016 10:30:08 +0000
Subject: com php-src: Fixed bug #72943 (assign_dim on string d oesn't reset hval): NEWS Zend/tests/bug729 43.phpt Zend/zend_execute.c
Groups: php.cvs 
Request: Send a blank email to php-cvs+get-94070@lists.php.net to get a copy of this message
Commit: c67fa3c91d314fd932fa1c921497fe3e6a968785 Author: Xinchen Hui <laruence@gmail.com> Fri, 26 Aug 2016 18:30:08 +0800 Parents: 57509fb969c1cce74dfb9dfec882b92aefd9be69 Branches: PHP-7.0 PHP-7.1 master Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=c67fa3c91d314fd932fa1c921497fe3e6a968785 Log: Fixed bug #72943 (assign_dim on string doesn't reset hval) Bugs: https://bugs.php.net/72943 Changed paths: M NEWS A Zend/tests/bug72943.phpt M Zend/zend_execute.c Diff: diff --git a/NEWS b/NEWS index d215a2b...1fc159a 100644 --- a/NEWS +++ b/NEWS @@ -3,6 +3,7 @@ PHP NEWS ?? ??? 2016 PHP 7.0.11 - Core: + . Fixed bug #72943 (assign_dim on string doesn't reset hval). (Laruence) . Fixed bug #72911 (Memleak in zend_binary_assign_op_obj_helper). (Laruence) . Fixed bug #72813 (Segfault with __get returned by ref). (Laruence) . Fixed bug #72767 (PHP Segfaults when trying to expand an infinite operator). diff --git a/Zend/tests/bug72943.phpt b/Zend/tests/bug72943.phpt new file mode 100644 index 0000000..8bab6de --- /dev/null +++ b/Zend/tests/bug72943.phpt @@ -0,0 +1,20 @@ +--TEST-- +Bug #72943 (assign_dim on string doesn't reset hval) +--FILE-- +<?php +$array = array("test" => 1); + +$a = "lest"; +var_dump($array[$a]); +$a[0] = "f"; +var_dump($array[$a]); +$a[0] = "t"; +var_dump($array[$a]); +?> +--EXPECTF-- +Notice: Undefined index: lest in %sbug72943.php on line %d +NULL + +Notice: Undefined index: fest in %sbug72943.php on line %d +NULL +int(1) diff --git a/Zend/zend_execute.c b/Zend/zend_execute.c index 9a3f69e..2882f3d 100644 --- a/Zend/zend_execute.c +++ b/Zend/zend_execute.c @@ -1335,6 +1335,7 @@ static void zend_assign_to_string_offset(zval *str, zend_long offset, zval *valu zend_string_release(tmp); } else { Z_STRVAL_P(str)[offset] = Z_STRVAL_P(value)[0]; + zend_string_forget_hash_val(Z_STR_P(str)); } /* * the value of an assignment to a string offset is undefined

« previous php.cvs (#94070) next »