]> granicus.if.org Git - php/commitdiff
- Fixed bug #51899 (Parse error in parse_ini_file() function when empy value followed...
authorFelipe Pena <felipe@php.net>
Wed, 26 May 2010 02:18:17 +0000 (02:18 +0000)
committerFelipe Pena <felipe@php.net>
Wed, 26 May 2010 02:18:17 +0000 (02:18 +0000)
Zend/zend_ini_scanner.c
Zend/zend_ini_scanner.l
Zend/zend_ini_scanner_defs.h
ext/standard/tests/strings/bug51899.phpt [new file with mode: 0644]

index 24997970851cd406034694e5506866eaff705814..1677d3ed2ed4f0636d9391b08ae1ed166aff9f30 100644 (file)
@@ -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;
        }
index 741dcc06430446f02b0d6879de8ee60277b00704..1c19a0978d7bf174b2f98635bd014cc88899b64b 100644 (file)
@@ -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;
        }
index 1956b6225b5092ed2fb0e2069dc71f6aebe1d05f..4107238ad3bb7fbb071711c3e6c31b89b5ac5b29 100644 (file)
@@ -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 (file)
index 0000000..fb430cf
--- /dev/null
@@ -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) {
+}