cvs: ZendEngine2 / zend_execute_API.c /tests bug47572.phpt
[email protected] ("Felipe Pena") Thu, 05 Mar 2009 16:24:41 -0000
| Newsgroups | php.zend-engine.cvs |
|---|---|
| Message-ID | <cvsfelipe1236270281@cvsserver> |
felipe Thu Mar 5 16:24:41 2009 UTC
Added files:
/ZendEngine2/tests bug47572.phpt
Modified files:
/ZendEngine2 zend_execute_API.c
Log:
- Fixed bug #47572 (zval_update_constant_ex: Segmentation fault)
http://cvs.php.net/viewvc.cgi/ZendEngine2/zend_execute_API.c?r1=1.472&r2=1.473&diff_format=u
Index: ZendEngine2/zend_execute_API.c
diff -u ZendEngine2/zend_execute_API.c:1.472 ZendEngine2/zend_execute_API.c:1.473
--- ZendEngine2/zend_execute_API.c:1.472 Mon Feb 9 09:20:46 2009
+++ ZendEngine2/zend_execute_API.c Thu Mar 5 16:24:41 2009
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_execute_API.c,v 1.472 2009/02/09 09:20:46 dmitry Exp $ */
+/* $Id: zend_execute_API.c,v 1.473 2009/03/05 16:24:41 felipe Exp $ */
#include <stdio.h>
#include <signal.h>
@@ -655,10 +655,12 @@
str_index.u = colon.u + 1;
} else {
if (str_index.u[str_index_len - 2] & IS_CONSTANT_UNQUALIFIED) {
- actual = (UChar *)u_memrchr(str_index.u, '\\', str_index_len - 3) + 1;
+ if ((actual = (UChar *)u_memrchr(str_index.u, '\\', str_index_len - 3))) {
+ actual++;
str_index_len -= (actual - str_index.u);
str_index.u = actual;
}
+ }
if (str_index.u[0] == '\\') {
++str_index.u;
--str_index_len;
@@ -678,10 +680,12 @@
str_index.s = colon.s + 1;
} else {
if (str_index.s[str_index_len - 2] & IS_CONSTANT_UNQUALIFIED) {
- actual = (char *)zend_memrchr(str_index.s, '\\', str_index_len - 3) + 1;
+ if ((actual = (char *)zend_memrchr(str_index.s, '\\', str_index_len - 3))) {
+ actual++;
str_index_len -= (actual - str_index.s);
str_index.s = actual;
}
+ }
if (str_index.s[0] == '\\') {
++str_index.s;
--str_index_len;
http://cvs.php.net/viewvc.cgi/ZendEngine2/tests/bug47572.phpt?view=markup&rev=1.1
Index: ZendEngine2/tests/bug47572.phpt
+++ ZendEngine2/tests/bug47572.phpt
--TEST--
Bug #47572 (zval_update_constant_ex: Segmentation fault)
--FILE--
<?php
class Foo {
public static $bar = array(
FOO => "bar"
);
}
$foo = new Foo();
?>
--EXPECTF--
Notice: Use of undefined constant FOO - assumed 'FOO' in %s on line %d