svn: /php/php-src/ branches/PHP_5_3/NEWS branches/PHP_5_3/Zend/tests/bug53971.phpt branches/PHP_5_3/Zend/zend_execute.c trunk/Zend/tests/bug53971.phpt
trunk/Zend/zend_execute.c
| From: | Dmitry Stogov | Date: | Mon, 14 Feb 2011 08:46:53 +0000 |
| Subject: | svn: /php/php-src/ branches/PHP_5_3/NEWS branches/PHP_5_3/Zend/tests/bug53971.phpt branches/PHP_5_3/Zend/zend_execute.c trunk/Zend/tests/bug53971.phpt trunk/Zend/zend_execute.c |
||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-64535@lists.php.net to get a copy of this message | ||
dmitry Mon, 14 Feb 2011 08:46:53 +0000
Revision: http://svn.php.net/viewvc?view=revision&revision=308315
Log:
Fixed Bug #53971 (isset() and empty() produce apparently spurious runtime error)
Bug: http://bugs.php.net/53971 (Assigned) isset() and
empty() produce apparently spurious runtime error
Changed paths:
U php/php-src/branches/PHP_5_3/NEWS
A php/php-src/branches/PHP_5_3/Zend/tests/bug53971.phpt
U php/php-src/branches/PHP_5_3/Zend/zend_execute.c
A php/php-src/trunk/Zend/tests/bug53971.phpt
U php/php-src/trunk/Zend/zend_execute.c
Modified: php/php-src/branches/PHP_5_3/NEWS
===================================================================
--- php/php-src/branches/PHP_5_3/NEWS 2011-02-14 06:53:25 UTC (rev 308314)
+++ php/php-src/branches/PHP_5_3/NEWS 2011-02-14 08:46:53 UTC (rev 308315)
@@ -8,6 +8,8 @@
. Indirect reference to $this fails to resolve if direct $this is never used
in method. (Scott)
. Added options to debug backtrace functions. (Stas)
+ . Fixed Bug #53971 (isset() and empty() produce apparently spurious runtime
+ error). (Dmitry)
. Fixed Bug #53629 (memory leak inside highlight_string()). (Hannes, Ilia)
. Fixed Bug #51458 (Lack of error context with nested exceptions). (Stas)
. Fixed Bug #47143 (Throwing an exception in a destructor causes a fatal
Added: php/php-src/branches/PHP_5_3/Zend/tests/bug53971.phpt
===================================================================
--- php/php-src/branches/PHP_5_3/Zend/tests/bug53971.phpt (rev 0)
+++ php/php-src/branches/PHP_5_3/Zend/tests/bug53971.phpt 2011-02-14 08:46:53 UTC (rev 308315)
@@ -0,0 +1,11 @@
+--TEST--
+Bug #53971 (isset() and empty() produce apparently spurious runtime error)
+--FILE--
+<?php
+$s = "";
+var_dump(isset($s[0][0]));
+?>
+--EXPECT--
+bool(false)
+
+
Modified: php/php-src/branches/PHP_5_3/Zend/zend_execute.c
===================================================================
--- php/php-src/branches/PHP_5_3/Zend/zend_execute.c 2011-02-14 06:53:25 UTC (rev 308314)
+++ php/php-src/branches/PHP_5_3/Zend/zend_execute.c 2011-02-14 08:46:53 UTC (rev 308315)
@@ -1067,7 +1067,7 @@
dim = &tmp;
}
if (result) {
- if (Z_LVAL_P(dim) < 0 || Z_STRLEN_P(container) <= Z_LVAL_P(dim)) {
+ if ((Z_LVAL_P(dim) < 0 || Z_STRLEN_P(container) <= Z_LVAL_P(dim)) && type !=
BP_VAR_IS) {
zend_error(E_NOTICE, "Uninitialized string offset: %ld", Z_LVAL_P(dim));
}
result->str_offset.str = container;
Added: php/php-src/trunk/Zend/tests/bug53971.phpt
===================================================================
--- php/php-src/trunk/Zend/tests/bug53971.phpt (rev 0)
+++ php/php-src/trunk/Zend/tests/bug53971.phpt 2011-02-14 08:46:53 UTC (rev 308315)
@@ -0,0 +1,11 @@
+--TEST--
+Bug #53971 (isset() and empty() produce apparently spurious runtime error)
+--FILE--
+<?php
+$s = "";
+var_dump(isset($s[0][0]));
+?>
+--EXPECT--
+bool(false)
+
+
Modified: php/php-src/trunk/Zend/zend_execute.c
===================================================================
--- php/php-src/trunk/Zend/zend_execute.c 2011-02-14 06:53:25 UTC (rev 308314)
+++ php/php-src/trunk/Zend/zend_execute.c 2011-02-14 08:46:53 UTC (rev 308315)
@@ -1258,7 +1258,9 @@
Z_TYPE_P(ptr) = IS_STRING;
if (Z_LVAL_P(dim) < 0 || Z_STRLEN_P(container) <= Z_LVAL_P(dim)) {
- zend_error(E_NOTICE, "Uninitialized string offset: %ld", Z_LVAL_P(dim));
+ if (type != BP_VAR_IS) {
+ zend_error(E_NOTICE, "Uninitialized string offset: %ld", Z_LVAL_P(dim));
+ }
Z_STRVAL_P(ptr) = STR_EMPTY_ALLOC();
Z_STRLEN_P(ptr) = 0;
} else {