| 
        php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login | 
 Patch bug61011.patch for Reproducible crash Bug #61011Patch version 2012-02-08 16:05 UTC Return to Bug #61011 | Download this patchThis patch is obsolete Obsoleted by patches: Patch Revisions:Developer: laruence@php.net
Index: Zend/zend_vm_def.h
===================================================================
--- Zend/zend_vm_def.h	(revision 323122)
+++ Zend/zend_vm_def.h	(working copy)
@@ -1039,6 +1039,14 @@
 				ce = CACHED_PTR(opline->op2.literal->cache_slot);
 			} else {
 				ce = zend_fetch_class_by_name(Z_STRVAL_P(opline->op2.zv), Z_STRLEN_P(opline->op2.zv), opline->op2.literal + 1, 0 TSRMLS_CC);
+				if (!ce) {
+					FREE_OP1();
+					if (OP1_TYPE != IS_CONST && varname == &tmp_varname) {
+						zval_dtor(&tmp_varname);
+					}
+					CHECK_EXCEPTION();
+					ZEND_VM_NEXT_OPCODE();
+				}
 				CACHE_PTR(opline->op2.literal->cache_slot, ce);
 			}
 		} else {
Index: Zend/zend_vm_execute.h
===================================================================
--- Zend/zend_vm_execute.h	(revision 323122)
+++ Zend/zend_vm_execute.h	(working copy)
@@ -3236,6 +3236,14 @@
 				ce = CACHED_PTR(opline->op2.literal->cache_slot);
 			} else {
 				ce = zend_fetch_class_by_name(Z_STRVAL_P(opline->op2.zv), Z_STRLEN_P(opline->op2.zv), opline->op2.literal + 1, 0 TSRMLS_CC);
+				if (!ce) {
+
+					if (IS_CONST != IS_CONST && varname == &tmp_varname) {
+						zval_dtor(&tmp_varname);
+					}
+					CHECK_EXCEPTION();
+					ZEND_VM_NEXT_OPCODE();
+				}
 				CACHE_PTR(opline->op2.literal->cache_slot, ce);
 			}
 		} else {
@@ -4711,6 +4719,14 @@
 				ce = CACHED_PTR(opline->op2.literal->cache_slot);
 			} else {
 				ce = zend_fetch_class_by_name(Z_STRVAL_P(opline->op2.zv), Z_STRLEN_P(opline->op2.zv), opline->op2.literal + 1, 0 TSRMLS_CC);
+				if (!ce) {
+
+					if (IS_CONST != IS_CONST && varname == &tmp_varname) {
+						zval_dtor(&tmp_varname);
+					}
+					CHECK_EXCEPTION();
+					ZEND_VM_NEXT_OPCODE();
+				}
 				CACHE_PTR(opline->op2.literal->cache_slot, ce);
 			}
 		} else {
@@ -5247,6 +5263,14 @@
 				ce = CACHED_PTR(opline->op2.literal->cache_slot);
 			} else {
 				ce = zend_fetch_class_by_name(Z_STRVAL_P(opline->op2.zv), Z_STRLEN_P(opline->op2.zv), opline->op2.literal + 1, 0 TSRMLS_CC);
+				if (!ce) {
+
+					if (IS_CONST != IS_CONST && varname == &tmp_varname) {
+						zval_dtor(&tmp_varname);
+					}
+					CHECK_EXCEPTION();
+					ZEND_VM_NEXT_OPCODE();
+				}
 				CACHE_PTR(opline->op2.literal->cache_slot, ce);
 			}
 		} else {
@@ -7629,6 +7653,14 @@
 				ce = CACHED_PTR(opline->op2.literal->cache_slot);
 			} else {
 				ce = zend_fetch_class_by_name(Z_STRVAL_P(opline->op2.zv), Z_STRLEN_P(opline->op2.zv), opline->op2.literal + 1, 0 TSRMLS_CC);
+				if (!ce) {
+					zval_dtor(free_op1.var);
+					if (IS_TMP_VAR != IS_CONST && varname == &tmp_varname) {
+						zval_dtor(&tmp_varname);
+					}
+					CHECK_EXCEPTION();
+					ZEND_VM_NEXT_OPCODE();
+				}
 				CACHE_PTR(opline->op2.literal->cache_slot, ce);
 			}
 		} else {
@@ -8975,6 +9007,14 @@
 				ce = CACHED_PTR(opline->op2.literal->cache_slot);
 			} else {
 				ce = zend_fetch_class_by_name(Z_STRVAL_P(opline->op2.zv), Z_STRLEN_P(opline->op2.zv), opline->op2.literal + 1, 0 TSRMLS_CC);
+				if (!ce) {
+					zval_dtor(free_op1.var);
+					if (IS_TMP_VAR != IS_CONST && varname == &tmp_varname) {
+						zval_dtor(&tmp_varname);
+					}
+					CHECK_EXCEPTION();
+					ZEND_VM_NEXT_OPCODE();
+				}
 				CACHE_PTR(opline->op2.literal->cache_slot, ce);
 			}
 		} else {
@@ -9512,6 +9552,14 @@
 				ce = CACHED_PTR(opline->op2.literal->cache_slot);
 			} else {
 				ce = zend_fetch_class_by_name(Z_STRVAL_P(opline->op2.zv), Z_STRLEN_P(opline->op2.zv), opline->op2.literal + 1, 0 TSRMLS_CC);
+				if (!ce) {
+					zval_dtor(free_op1.var);
+					if (IS_TMP_VAR != IS_CONST && varname == &tmp_varname) {
+						zval_dtor(&tmp_varname);
+					}
+					CHECK_EXCEPTION();
+					ZEND_VM_NEXT_OPCODE();
+				}
 				CACHE_PTR(opline->op2.literal->cache_slot, ce);
 			}
 		} else {
@@ -12568,6 +12616,14 @@
 				ce = CACHED_PTR(opline->op2.literal->cache_slot);
 			} else {
 				ce = zend_fetch_class_by_name(Z_STRVAL_P(opline->op2.zv), Z_STRLEN_P(opline->op2.zv), opline->op2.literal + 1, 0 TSRMLS_CC);
+				if (!ce) {
+					if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+					if (IS_VAR != IS_CONST && varname == &tmp_varname) {
+						zval_dtor(&tmp_varname);
+					}
+					CHECK_EXCEPTION();
+					ZEND_VM_NEXT_OPCODE();
+				}
 				CACHE_PTR(opline->op2.literal->cache_slot, ce);
 			}
 		} else {
@@ -16791,6 +16847,14 @@
 				ce = CACHED_PTR(opline->op2.literal->cache_slot);
 			} else {
 				ce = zend_fetch_class_by_name(Z_STRVAL_P(opline->op2.zv), Z_STRLEN_P(opline->op2.zv), opline->op2.literal + 1, 0 TSRMLS_CC);
+				if (!ce) {
+					if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+					if (IS_VAR != IS_CONST && varname == &tmp_varname) {
+						zval_dtor(&tmp_varname);
+					}
+					CHECK_EXCEPTION();
+					ZEND_VM_NEXT_OPCODE();
+				}
 				CACHE_PTR(opline->op2.literal->cache_slot, ce);
 			}
 		} else {
@@ -18582,6 +18646,14 @@
 				ce = CACHED_PTR(opline->op2.literal->cache_slot);
 			} else {
 				ce = zend_fetch_class_by_name(Z_STRVAL_P(opline->op2.zv), Z_STRLEN_P(opline->op2.zv), opline->op2.literal + 1, 0 TSRMLS_CC);
+				if (!ce) {
+					if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+					if (IS_VAR != IS_CONST && varname == &tmp_varname) {
+						zval_dtor(&tmp_varname);
+					}
+					CHECK_EXCEPTION();
+					ZEND_VM_NEXT_OPCODE();
+				}
 				CACHE_PTR(opline->op2.literal->cache_slot, ce);
 			}
 		} else {
@@ -28292,6 +28364,14 @@
 				ce = CACHED_PTR(opline->op2.literal->cache_slot);
 			} else {
 				ce = zend_fetch_class_by_name(Z_STRVAL_P(opline->op2.zv), Z_STRLEN_P(opline->op2.zv), opline->op2.literal + 1, 0 TSRMLS_CC);
+				if (!ce) {
+
+					if (IS_CV != IS_CONST && varname == &tmp_varname) {
+						zval_dtor(&tmp_varname);
+					}
+					CHECK_EXCEPTION();
+					ZEND_VM_NEXT_OPCODE();
+				}
 				CACHE_PTR(opline->op2.literal->cache_slot, ce);
 			}
 		} else {
@@ -32168,6 +32248,14 @@
 				ce = CACHED_PTR(opline->op2.literal->cache_slot);
 			} else {
 				ce = zend_fetch_class_by_name(Z_STRVAL_P(opline->op2.zv), Z_STRLEN_P(opline->op2.zv), opline->op2.literal + 1, 0 TSRMLS_CC);
+				if (!ce) {
+
+					if (IS_CV != IS_CONST && varname == &tmp_varname) {
+						zval_dtor(&tmp_varname);
+					}
+					CHECK_EXCEPTION();
+					ZEND_VM_NEXT_OPCODE();
+				}
 				CACHE_PTR(opline->op2.literal->cache_slot, ce);
 			}
 		} else {
@@ -33830,6 +33918,14 @@
 				ce = CACHED_PTR(opline->op2.literal->cache_slot);
 			} else {
 				ce = zend_fetch_class_by_name(Z_STRVAL_P(opline->op2.zv), Z_STRLEN_P(opline->op2.zv), opline->op2.literal + 1, 0 TSRMLS_CC);
+				if (!ce) {
+
+					if (IS_CV != IS_CONST && varname == &tmp_varname) {
+						zval_dtor(&tmp_varname);
+					}
+					CHECK_EXCEPTION();
+					ZEND_VM_NEXT_OPCODE();
+				}
 				CACHE_PTR(opline->op2.literal->cache_slot, ce);
 			}
 		} else {
         | 
    
            
                 
                Copyright © 2001-2025 The PHP GroupAll rights reserved.  | 
        Last updated: Tue Nov 04 12:00:01 2025 UTC |