php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Return to Bug #61767
Patch bug61767.diff revision 2012-09-05 08:14 UTC by dmitry@php.net
Patch another_fix_for_bug61767.patch revision 2012-04-20 09:50 UTC by laruence@php.net
Patch bug61767.patch revision 2012-04-20 06:01 UTC by laruence@php.net

Patch bug61767.patch for Scripting Engine problem Bug #61767

Patch version 2012-04-20 06:01 UTC

Return to Bug #61767 | Download this patch
Patch Revisions:

Developer: laruence@php.net

diff --git a/Zend/zend_vm_def.h b/Zend/zend_vm_def.h
index 7b13b44..277af15 100644
--- a/Zend/zend_vm_def.h
+++ b/Zend/zend_vm_def.h
@@ -2186,6 +2186,10 @@ ZEND_VM_HANDLER(112, ZEND_INIT_METHOD_CALL, TMP|VAR|UNUSED|CV, CONST|TMP|VAR|CV)
 
 	EX(object) = GET_OP1_OBJ_ZVAL_PTR(BP_VAR_R);
 
+    if (UNEXPECTED(EG(exception) != NULL)) {
+        HANDLE_EXCEPTION();
+    }
+
 	if (EXPECTED(EX(object) != NULL) &&
 	    EXPECTED(Z_TYPE_P(EX(object)) == IS_OBJECT)) {
 		EX(called_scope) = Z_OBJCE_P(EX(object));
diff --git a/Zend/zend_vm_execute.h b/Zend/zend_vm_execute.h
index 2096c44..1201bb9 100644
--- a/Zend/zend_vm_execute.h
+++ b/Zend/zend_vm_execute.h
@@ -8083,6 +8083,10 @@ static int ZEND_FASTCALL  ZEND_INIT_METHOD_CALL_SPEC_TMP_CONST_HANDLER(ZEND_OPCO
 
 	EX(object) = _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
 
+    if (UNEXPECTED(EG(exception) != NULL)) {
+        HANDLE_EXCEPTION();
+    }
+
 	if (EXPECTED(EX(object) != NULL) &&
 	    EXPECTED(Z_TYPE_P(EX(object)) == IS_OBJECT)) {
 		EX(called_scope) = Z_OBJCE_P(EX(object));
@@ -8782,6 +8786,10 @@ static int ZEND_FASTCALL  ZEND_INIT_METHOD_CALL_SPEC_TMP_TMP_HANDLER(ZEND_OPCODE
 
 	EX(object) = _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
 
+    if (UNEXPECTED(EG(exception) != NULL)) {
+        HANDLE_EXCEPTION();
+    }
+
 	if (EXPECTED(EX(object) != NULL) &&
 	    EXPECTED(Z_TYPE_P(EX(object)) == IS_OBJECT)) {
 		EX(called_scope) = Z_OBJCE_P(EX(object));
@@ -9486,6 +9494,10 @@ static int ZEND_FASTCALL  ZEND_INIT_METHOD_CALL_SPEC_TMP_VAR_HANDLER(ZEND_OPCODE
 
 	EX(object) = _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
 
+    if (UNEXPECTED(EG(exception) != NULL)) {
+        HANDLE_EXCEPTION();
+    }
+
 	if (EXPECTED(EX(object) != NULL) &&
 	    EXPECTED(Z_TYPE_P(EX(object)) == IS_OBJECT)) {
 		EX(called_scope) = Z_OBJCE_P(EX(object));
@@ -10611,6 +10623,10 @@ static int ZEND_FASTCALL  ZEND_INIT_METHOD_CALL_SPEC_TMP_CV_HANDLER(ZEND_OPCODE_
 
 	EX(object) = _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
 
+    if (UNEXPECTED(EG(exception) != NULL)) {
+        HANDLE_EXCEPTION();
+    }
+
 	if (EXPECTED(EX(object) != NULL) &&
 	    EXPECTED(Z_TYPE_P(EX(object)) == IS_OBJECT)) {
 		EX(called_scope) = Z_OBJCE_P(EX(object));
@@ -13694,6 +13710,10 @@ static int ZEND_FASTCALL  ZEND_INIT_METHOD_CALL_SPEC_VAR_CONST_HANDLER(ZEND_OPCO
 
 	EX(object) = _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
 
+    if (UNEXPECTED(EG(exception) != NULL)) {
+        HANDLE_EXCEPTION();
+    }
+
 	if (EXPECTED(EX(object) != NULL) &&
 	    EXPECTED(Z_TYPE_P(EX(object)) == IS_OBJECT)) {
 		EX(called_scope) = Z_OBJCE_P(EX(object));
@@ -15871,6 +15891,10 @@ static int ZEND_FASTCALL  ZEND_INIT_METHOD_CALL_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE
 
 	EX(object) = _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
 
+    if (UNEXPECTED(EG(exception) != NULL)) {
+        HANDLE_EXCEPTION();
+    }
+
 	if (EXPECTED(EX(object) != NULL) &&
 	    EXPECTED(Z_TYPE_P(EX(object)) == IS_OBJECT)) {
 		EX(called_scope) = Z_OBJCE_P(EX(object));
@@ -18016,6 +18040,10 @@ static int ZEND_FASTCALL  ZEND_INIT_METHOD_CALL_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE
 
 	EX(object) = _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
 
+    if (UNEXPECTED(EG(exception) != NULL)) {
+        HANDLE_EXCEPTION();
+    }
+
 	if (EXPECTED(EX(object) != NULL) &&
 	    EXPECTED(Z_TYPE_P(EX(object)) == IS_OBJECT)) {
 		EX(called_scope) = Z_OBJCE_P(EX(object));
@@ -21138,6 +21166,10 @@ static int ZEND_FASTCALL  ZEND_INIT_METHOD_CALL_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_
 
 	EX(object) = _get_zval_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
 
+    if (UNEXPECTED(EG(exception) != NULL)) {
+        HANDLE_EXCEPTION();
+    }
+
 	if (EXPECTED(EX(object) != NULL) &&
 	    EXPECTED(Z_TYPE_P(EX(object)) == IS_OBJECT)) {
 		EX(called_scope) = Z_OBJCE_P(EX(object));
@@ -22604,6 +22636,10 @@ static int ZEND_FASTCALL  ZEND_INIT_METHOD_CALL_SPEC_UNUSED_CONST_HANDLER(ZEND_O
 
 	EX(object) = _get_obj_zval_ptr_unused(TSRMLS_C);
 
+    if (UNEXPECTED(EG(exception) != NULL)) {
+        HANDLE_EXCEPTION();
+    }
+
 	if (EXPECTED(EX(object) != NULL) &&
 	    EXPECTED(Z_TYPE_P(EX(object)) == IS_OBJECT)) {
 		EX(called_scope) = Z_OBJCE_P(EX(object));
@@ -23853,6 +23889,10 @@ static int ZEND_FASTCALL  ZEND_INIT_METHOD_CALL_SPEC_UNUSED_TMP_HANDLER(ZEND_OPC
 
 	EX(object) = _get_obj_zval_ptr_unused(TSRMLS_C);
 
+    if (UNEXPECTED(EG(exception) != NULL)) {
+        HANDLE_EXCEPTION();
+    }
+
 	if (EXPECTED(EX(object) != NULL) &&
 	    EXPECTED(Z_TYPE_P(EX(object)) == IS_OBJECT)) {
 		EX(called_scope) = Z_OBJCE_P(EX(object));
@@ -25011,6 +25051,10 @@ static int ZEND_FASTCALL  ZEND_INIT_METHOD_CALL_SPEC_UNUSED_VAR_HANDLER(ZEND_OPC
 
 	EX(object) = _get_obj_zval_ptr_unused(TSRMLS_C);
 
+    if (UNEXPECTED(EG(exception) != NULL)) {
+        HANDLE_EXCEPTION();
+    }
+
 	if (EXPECTED(EX(object) != NULL) &&
 	    EXPECTED(Z_TYPE_P(EX(object)) == IS_OBJECT)) {
 		EX(called_scope) = Z_OBJCE_P(EX(object));
@@ -26436,6 +26480,10 @@ static int ZEND_FASTCALL  ZEND_INIT_METHOD_CALL_SPEC_UNUSED_CV_HANDLER(ZEND_OPCO
 
 	EX(object) = _get_obj_zval_ptr_unused(TSRMLS_C);
 
+    if (UNEXPECTED(EG(exception) != NULL)) {
+        HANDLE_EXCEPTION();
+    }
+
 	if (EXPECTED(EX(object) != NULL) &&
 	    EXPECTED(Z_TYPE_P(EX(object)) == IS_OBJECT)) {
 		EX(called_scope) = Z_OBJCE_P(EX(object));
@@ -29520,6 +29568,10 @@ static int ZEND_FASTCALL  ZEND_INIT_METHOD_CALL_SPEC_CV_CONST_HANDLER(ZEND_OPCOD
 
 	EX(object) = _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op1.var TSRMLS_CC);
 
+    if (UNEXPECTED(EG(exception) != NULL)) {
+        HANDLE_EXCEPTION();
+    }
+
 	if (EXPECTED(EX(object) != NULL) &&
 	    EXPECTED(Z_TYPE_P(EX(object)) == IS_OBJECT)) {
 		EX(called_scope) = Z_OBJCE_P(EX(object));
@@ -31476,6 +31528,10 @@ static int ZEND_FASTCALL  ZEND_INIT_METHOD_CALL_SPEC_CV_TMP_HANDLER(ZEND_OPCODE_
 
 	EX(object) = _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op1.var TSRMLS_CC);
 
+    if (UNEXPECTED(EG(exception) != NULL)) {
+        HANDLE_EXCEPTION();
+    }
+
 	if (EXPECTED(EX(object) != NULL) &&
 	    EXPECTED(Z_TYPE_P(EX(object)) == IS_OBJECT)) {
 		EX(called_scope) = Z_OBJCE_P(EX(object));
@@ -33491,6 +33547,10 @@ static int ZEND_FASTCALL  ZEND_INIT_METHOD_CALL_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_
 
 	EX(object) = _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op1.var TSRMLS_CC);
 
+    if (UNEXPECTED(EG(exception) != NULL)) {
+        HANDLE_EXCEPTION();
+    }
+
 	if (EXPECTED(EX(object) != NULL) &&
 	    EXPECTED(Z_TYPE_P(EX(object)) == IS_OBJECT)) {
 		EX(called_scope) = Z_OBJCE_P(EX(object));
@@ -36344,6 +36404,10 @@ static int ZEND_FASTCALL  ZEND_INIT_METHOD_CALL_SPEC_CV_CV_HANDLER(ZEND_OPCODE_H
 
 	EX(object) = _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op1.var TSRMLS_CC);
 
+    if (UNEXPECTED(EG(exception) != NULL)) {
+        HANDLE_EXCEPTION();
+    }
+
 	if (EXPECTED(EX(object) != NULL) &&
 	    EXPECTED(Z_TYPE_P(EX(object)) == IS_OBJECT)) {
 		EX(called_scope) = Z_OBJCE_P(EX(object));
 
PHP Copyright © 2001-2014 The PHP Group
All rights reserved.
Last updated: Thu Apr 24 19:01:53 2014 UTC