Add destructor annotations in ini parser

It would be better to switch this to use %union and %type annotations,
but not going to do that change for 7.3.
This commit is contained in:
Nikita Popov 2019-12-19 10:42:10 +01:00
parent bacfae8baf
commit 0f078f6e78
2 changed files with 11 additions and 1 deletions

View File

@ -310,7 +310,7 @@ static void zval_ini_dtor(zval *zv)
%left '|' '&' '^'
%right '~' '!'
%destructor { zval_ini_dtor(&$$); } TC_RAW TC_CONSTANT TC_NUMBER TC_STRING TC_WHITESPACE TC_LABEL TC_OFFSET TC_VARNAME BOOL_TRUE BOOL_FALSE NULL_NULL
%destructor { zval_ini_dtor(&$$); } TC_RAW TC_CONSTANT TC_NUMBER TC_STRING TC_WHITESPACE TC_LABEL TC_OFFSET TC_VARNAME BOOL_TRUE BOOL_FALSE NULL_NULL cfg_var_ref constant_literal constant_string encapsed_list expr option_offset section_string_or_value string_or_value var_string_list var_string_list_section
%%

View File

@ -0,0 +1,10 @@
--TEST--
Ini parsing errors should not result in memory leaks
--FILE--
<?php
var_dump(parse_ini_string('a="b'));
?>
--EXPECTF--
Warning: syntax error, unexpected $end, expecting TC_DOLLAR_CURLY or TC_QUOTED_STRING or '"' in Unknown on line 1
in %s on line %d
bool(false)