diff options
-rw-r--r-- | NEWS | 2 | ||||
-rw-r--r-- | Zend/zend_ini_scanner.c | 4 | ||||
-rw-r--r-- | Zend/zend_ini_scanner.l | 2 | ||||
-rw-r--r-- | Zend/zend_ini_scanner_defs.h | 2 | ||||
-rw-r--r-- | ext/standard/tests/strings/bug51899.phpt | 37 |
5 files changed, 43 insertions, 4 deletions
@@ -66,6 +66,8 @@ PHP NEWS constant array). (Felipe) - Fixed bug #51905 (ReflectionParameter fails if default value is an array with an access to self::). (Felipe) +- Fixed bug #51899 (Parse error in parse_ini_file() function when empy value + followed by no newline). (Felipe) - Fixed bug #51844 (checkdnsrr does not support types other than MX). (Pierre) - Fixed bug #51827 (Bad warning when register_shutdown_function called with wrong num of parameters). (Felipe) diff --git a/Zend/zend_ini_scanner.c b/Zend/zend_ini_scanner.c index 2499797085..1677d3ed2e 100644 --- a/Zend/zend_ini_scanner.c +++ b/Zend/zend_ini_scanner.c @@ -1,4 +1,4 @@ -/* Generated by re2c 0.13.5 on Sun Feb 7 13:25:37 2010 */ +/* Generated by re2c 0.13.5 on Tue May 25 22:53:58 2010 */ #line 1 "Zend/zend_ini_scanner.l" /* +----------------------------------------------------------------------+ @@ -317,7 +317,7 @@ restart: if (YYCURSOR >= YYLIMIT) { if (YYSTATE == STATE(ST_VALUE) || YYSTATE == STATE(ST_RAW)) { BEGIN(INITIAL); - return 0; + return END_OF_LINE; } return 0; } diff --git a/Zend/zend_ini_scanner.l b/Zend/zend_ini_scanner.l index 741dcc0643..1c19a0978d 100644 --- a/Zend/zend_ini_scanner.l +++ b/Zend/zend_ini_scanner.l @@ -315,7 +315,7 @@ restart: if (YYCURSOR >= YYLIMIT) { if (YYSTATE == STATE(ST_VALUE) || YYSTATE == STATE(ST_RAW)) { BEGIN(INITIAL); - return 0; + return END_OF_LINE; } return 0; } diff --git a/Zend/zend_ini_scanner_defs.h b/Zend/zend_ini_scanner_defs.h index 1956b6225b..4107238ad3 100644 --- a/Zend/zend_ini_scanner_defs.h +++ b/Zend/zend_ini_scanner_defs.h @@ -1,4 +1,4 @@ -/* Generated by re2c 0.13.5 on Sun Feb 7 13:25:37 2010 */ +/* Generated by re2c 0.13.5 on Tue May 25 22:53:58 2010 */ #line 3 "Zend/zend_ini_scanner_defs.h" enum YYCONDTYPE { diff --git a/ext/standard/tests/strings/bug51899.phpt b/ext/standard/tests/strings/bug51899.phpt new file mode 100644 index 0000000000..fb430cf30d --- /dev/null +++ b/ext/standard/tests/strings/bug51899.phpt @@ -0,0 +1,37 @@ +--TEST-- +Bug #51899 (Parse error in parse_ini_file() function when empy value followed by no newline) +--FILE-- +<?php + +var_dump(parse_ini_string('a=')); +var_dump(parse_ini_string('a= ')); +var_dump(parse_ini_string('a='.PHP_EOL)); +var_dump(parse_ini_string('a=b ')); +var_dump(parse_ini_string('')); +var_dump(parse_ini_string(NULL)); +var_dump(parse_ini_string("\0")); + +?> +--EXPECT-- +array(1) { + ["a"]=> + string(0) "" +} +array(1) { + ["a"]=> + string(0) "" +} +array(1) { + ["a"]=> + string(0) "" +} +array(1) { + ["a"]=> + string(2) "b " +} +array(0) { +} +array(0) { +} +array(0) { +} |