diff options
| author | Felipe Pena <felipe@php.net> | 2010-05-26 02:18:17 +0000 | 
|---|---|---|
| committer | Felipe Pena <felipe@php.net> | 2010-05-26 02:18:17 +0000 | 
| commit | 00191c3c34e212c6812d32bb9e225bcf73b6930a (patch) | |
| tree | ce1c66cd1f1509102135cc4108e98326b986d823 | |
| parent | c4be9c3890f6295ff6b18f4f3f6a04197c24fe25 (diff) | |
| download | php-git-00191c3c34e212c6812d32bb9e225bcf73b6930a.tar.gz | |
- Fixed bug #51899 (Parse error in parse_ini_file() function when empy value followed by no newline)
| -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) { +}  | 
