From: Antony Dovgal <tony2001@php.net>
Date: Thu, 24 Dec 2009 13:07:33 +0000 (+0000)
Subject: fix the fix for #47409
X-Git-Tag: php-5.4.0alpha1~191^2~2170
X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=c2fa809debeff6cbbb0a17a09bea0dde72dec91d;p=php

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

diff --git a/ext/standard/array.c b/ext/standard/array.c
index 1c78cab2e8..5ed0862abb 100644
--- a/ext/standard/array.c
+++ b/ext/standard/array.c
@@ -1445,7 +1445,7 @@ PHP_FUNCTION(extract)
 				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);