tony2001                                 Thu, 24 Dec 2009 13:07:33 +0000

Revision: http://svn.php.net/viewvc?view=revision&revision=292594

Log:
fix the fix for #47409
use correct comparison and add missing scope checks to trunk

Bug: http://bugs.php.net/47409 (Closed) extract() problem with array containing 
word "this"
      
Changed paths:
    U   php/php-src/branches/PHP_5_2/ext/standard/array.c
    U   php/php-src/branches/PHP_5_3/ext/standard/array.c
    U   php/php-src/trunk/ext/standard/array.c

Modified: php/php-src/branches/PHP_5_2/ext/standard/array.c
===================================================================
--- php/php-src/branches/PHP_5_2/ext/standard/array.c   2009-12-24 12:45:41 UTC 
(rev 292593)
+++ php/php-src/branches/PHP_5_2/ext/standard/array.c   2009-12-24 13:07:33 UTC 
(rev 292594)
@@ -1510,7 +1510,7 @@
                                if (var_exists && var_name_len == 
sizeof("GLOBALS") && !strcmp(var_name, "GLOBALS")) {
                                        break;
                                }
-                               if (var_exists && var_name_len == 
sizeof("this")  && !strcmp(var_name, "this") && EG(scope) && "" != 
EG(scope)->name) {
+                               if (var_exists && var_name_len == 
sizeof("this")  && !strcmp(var_name, "this") && EG(scope) && 
EG(scope)->name_length != 0) {
                                        break;
                                }
                                smart_str_appendl(&final_name, var_name, 
var_name_len);

Modified: php/php-src/branches/PHP_5_3/ext/standard/array.c
===================================================================
--- php/php-src/branches/PHP_5_3/ext/standard/array.c   2009-12-24 12:45:41 UTC 
(rev 292593)
+++ php/php-src/branches/PHP_5_3/ext/standard/array.c   2009-12-24 13:07:33 UTC 
(rev 292594)
@@ -1383,7 +1383,7 @@
                                if (var_exists && var_name_len == 
sizeof("GLOBALS") && !strcmp(var_name, "GLOBALS")) {
                                        break;
                                }
-                               if (var_exists && var_name_len == 
sizeof("this")  && !strcmp(var_name, "this") && EG(scope) && "" != 
EG(scope)->name) {
+                               if (var_exists && var_name_len == 
sizeof("this")  && !strcmp(var_name, "this") && EG(scope) && 
EG(scope)->name_length != 0) {
                                        break;
                                }
                                ZVAL_STRINGL(&final_name, var_name, 
var_name_len, 1);

Modified: php/php-src/trunk/ext/standard/array.c
===================================================================
--- php/php-src/trunk/ext/standard/array.c      2009-12-24 12:45:41 UTC (rev 
292593)
+++ php/php-src/trunk/ext/standard/array.c      2009-12-24 13:07:33 UTC (rev 
292594)
@@ -1445,7 +1445,7 @@
                                if (var_exists && var_name_len == 
sizeof("GLOBALS") && ZEND_U_EQUAL(key_type, var_name, var_name_len - 1, 
"GLOBALS", sizeof("GLOBALS") - 1)) {
                                        break;
                                }
-                               if (var_exists && var_name_len == 
sizeof("this") && ZEND_U_EQUAL(key_type, var_name, var_name_len - 1, "this", 
sizeof("this") - 1)) {
+                               if (var_exists && var_name_len == 
sizeof("this") && ZEND_U_EQUAL(key_type, var_name, var_name_len - 1, "this", 
sizeof("this") - 1) && EG(scope) && EG(scope)->name_length != 0) {
                                        break;
                                }
                                ZVAL_ZSTRL(&final_name, key_type, var_name, 
var_name_len, 1);

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to