From: Andi Gutmans Date: Fri, 20 Apr 2001 07:09:22 +0000 (+0000) Subject: - Fix for crash bug when using invalid arguments in the foreach() loop. X-Git-Tag: php-4.0.6RC1~358 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=90cf65411c6830b7affd5a51636fcb2771aa6709;p=php - Fix for crash bug when using invalid arguments in the foreach() loop. - Reported by Yasuo Ohgaki --- diff --git a/Zend/zend_execute.c b/Zend/zend_execute.c index 23929bf286..3cca945669 100644 --- a/Zend/zend_execute.c +++ b/Zend/zend_execute.c @@ -2141,9 +2141,13 @@ send_by_ref: if (opline->extended_value) { array_ptr_ptr = get_zval_ptr_ptr(&opline->op1, Ts, BP_VAR_R); - SEPARATE_ZVAL_IF_NOT_REF(array_ptr_ptr); - array_ptr = *array_ptr_ptr; - array_ptr->refcount++; + if (array_ptr_ptr == NULL) { + MAKE_STD_ZVAL(array_ptr); + } else { + SEPARATE_ZVAL_IF_NOT_REF(array_ptr_ptr); + array_ptr = *array_ptr_ptr; + array_ptr->refcount++; + } } else { array_ptr = get_zval_ptr(&opline->op1, Ts, &EG(free_op1), BP_VAR_R); if (EG(free_op1)) { /* IS_TMP_VAR */