From: Felipe Pena Date: Tue, 11 Nov 2008 16:15:53 +0000 (+0000) Subject: - Fixed bug #46546 (Segmentation fault when using declare statement with non-string... X-Git-Tag: BEFORE_NS_RULES_CHANGE~4 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=9b894e6e62f2af312f0a193a2039897eec3d0928;p=php - Fixed bug #46546 (Segmentation fault when using declare statement with non-string value) # This issue only happens in this branch --- diff --git a/Zend/tests/declare_001.phpt b/Zend/tests/declare_001.phpt new file mode 100644 index 0000000000..8f6f733479 --- /dev/null +++ b/Zend/tests/declare_001.phpt @@ -0,0 +1,16 @@ +--TEST-- +Testing declare statement with several type values +--FILE-- + +--EXPECT-- +DONE diff --git a/Zend/zend_compile.c b/Zend/zend_compile.c index 5d1c583fb1..90dcad362e 100644 --- a/Zend/zend_compile.c +++ b/Zend/zend_compile.c @@ -4770,12 +4770,13 @@ void zend_do_declare_stmt(znode *var, znode *val TSRMLS_DC) zend_multibyte_yyinput_again(old_input_filter, old_encoding TSRMLS_CC); } } + efree(val->u.constant.value.str.val); #else /* !ZEND_MULTIBYTE */ } else if (!zend_binary_strcasecmp(var->u.constant.value.str.val, var->u.constant.value.str.len, "encoding", sizeof("encoding")-1)) { /* Do not generate any kind of warning for encoding declares */ /* zend_error(E_COMPILE_WARNING, "Declare encoding [%s] not supported", val->u.constant.value.str.val); */ + zval_dtor(&val->u.constant); #endif /* ZEND_MULTIBYTE */ - efree(val->u.constant.value.str.val); } else { zend_error(E_COMPILE_WARNING, "Unsupported declare '%s'", var->u.constant.value.str.val); zval_dtor(&val->u.constant);