jani Sun Aug 31 00:19:21 2008 UTC Modified files: /php-src/ext/standard basic_functions.c /php-src/ext/standard/tests/file parse_ini_file.phpt parse_ini_file_error.phpt /php-src/ext/standard/tests/general_functions parse_ini_basic.phpt parse_ini_file-win32.phpt parse_ini_file.phpt Log: [DOC]- Fixed bug #45956 (parse_ini_file() does not return false with syntax errors in parsed file) [DOC] note: change will be in since 5.2.7 http://cvs.php.net/viewvc.cgi/php-src/ext/standard/basic_functions.c?r1=1.928&r2=1.929&diff_format=u Index: php-src/ext/standard/basic_functions.c diff -u php-src/ext/standard/basic_functions.c:1.928 php-src/ext/standard/basic_functions.c:1.929 --- php-src/ext/standard/basic_functions.c:1.928 Fri Aug 22 15:51:50 2008 +++ php-src/ext/standard/basic_functions.c Sun Aug 31 00:19:20 2008 @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: basic_functions.c,v 1.928 2008/08/22 15:51:50 felipe Exp $ */ +/* $Id: basic_functions.c,v 1.929 2008/08/31 00:19:20 jani Exp $ */ #include "php.h" #include "php_streams.h" @@ -6491,7 +6491,11 @@ fh.type = ZEND_HANDLE_FILENAME; array_init(return_value); - zend_parse_ini_file(&fh, 0, scanner_mode, ini_parser_cb, return_value TSRMLS_CC); + if (zend_parse_ini_file(&fh, 0, scanner_mode, ini_parser_cb, return_value TSRMLS_CC) == FAILURE) { + zend_hash_destroy(Z_ARRVAL_P(return_value)); + efree(Z_ARRVAL_P(return_value)); + RETURN_FALSE; + } } /* }}} */ http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/file/parse_ini_file.phpt?r1=1.4&r2=1.5&diff_format=u Index: php-src/ext/standard/tests/file/parse_ini_file.phpt diff -u php-src/ext/standard/tests/file/parse_ini_file.phpt:1.4 php-src/ext/standard/tests/file/parse_ini_file.phpt:1.5 --- php-src/ext/standard/tests/file/parse_ini_file.phpt:1.4 Tue May 27 09:34:54 2008 +++ php-src/ext/standard/tests/file/parse_ini_file.phpt Sun Aug 31 00:19:21 2008 @@ -9,7 +9,7 @@ $file_path = dirname(__FILE__); -$parse_string = <<<EOD +$parse_string = (binary) <<<EOD ; Comment starts with semi-colon(;) ; Section starts with [<section name>] http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/file/parse_ini_file_error.phpt?r1=1.2&r2=1.3&diff_format=u Index: php-src/ext/standard/tests/file/parse_ini_file_error.phpt diff -u php-src/ext/standard/tests/file/parse_ini_file_error.phpt:1.2 php-src/ext/standard/tests/file/parse_ini_file_error.phpt:1.3 --- php-src/ext/standard/tests/file/parse_ini_file_error.phpt:1.2 Wed Mar 19 17:26:36 2008 +++ php-src/ext/standard/tests/file/parse_ini_file_error.phpt Sun Aug 31 00:19:21 2008 @@ -42,12 +42,10 @@ -- Testing parse_ini_file() function with more than expected no. of arguments -- Warning: parse_ini_file(%s): failed to open stream: No such file or directory in %s on line %d -array(0) { -} +bool(false) -- Testing parse_ini_file() function with a non-existent file -- Warning: parse_ini_file(%s): failed to open stream: No such file or directory in %s on line %d -array(0) { -} +bool(false) Done http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/general_functions/parse_ini_basic.phpt?r1=1.5&r2=1.6&diff_format=u Index: php-src/ext/standard/tests/general_functions/parse_ini_basic.phpt diff -u php-src/ext/standard/tests/general_functions/parse_ini_basic.phpt:1.5 php-src/ext/standard/tests/general_functions/parse_ini_basic.phpt:1.6 --- php-src/ext/standard/tests/general_functions/parse_ini_basic.phpt:1.5 Tue May 27 00:04:31 2008 +++ php-src/ext/standard/tests/general_functions/parse_ini_basic.phpt Sun Aug 31 00:19:21 2008 @@ -45,7 +45,7 @@ [u"dqstring"]=> unicode(46) "asdadfsdjkslkj [EMAIL PROTECTED] { } !^~|¥¥{[()/)&/% ¤ # #" [u"php_constant"]=> - unicode(5) "16383" + unicode(5) "32767" [u"user_constant"]=> unicode(21) "this_is_test_constant" } @@ -76,7 +76,7 @@ [u"dqstring"]=> unicode(34) "asdadfsdjkslkj [EMAIL PROTECTED]()/)&/%#¤" [u"php_constant"]=> - unicode(5) "16383" + unicode(5) "32767" } [u"comments"]=> array(1) { http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/general_functions/parse_ini_file-win32.phpt?r1=1.1&r2=1.2&diff_format=u Index: php-src/ext/standard/tests/general_functions/parse_ini_file-win32.phpt diff -u php-src/ext/standard/tests/general_functions/parse_ini_file-win32.phpt:1.1 php-src/ext/standard/tests/general_functions/parse_ini_file-win32.phpt:1.2 --- php-src/ext/standard/tests/general_functions/parse_ini_file-win32.phpt:1.1 Thu Aug 21 13:04:43 2008 +++ php-src/ext/standard/tests/general_functions/parse_ini_file-win32.phpt Sun Aug 31 00:19:21 2008 @@ -116,12 +116,10 @@ bool(false) Warning: parse_ini_file(%sparse_ini_file.dat): failed to open stream: No such file or directory in %s.php on line 8 -array(0) { -} +bool(false) Warning: parse_ini_file(%sparse_ini_file.dat): failed to open stream: No such file or directory in %s.php on line 9 -array(0) { -} +bool(false) array(1) { ["test"]=> string(0) "" @@ -129,17 +127,11 @@ Warning: parse error in %s on line %d in %s on line 20 -array(1) { - ["test"]=> - string(0) "" -} +bool(false) Warning: parse error in %s on line %d in %s on line 26 -array(1) { - ["test"]=> - string(4) "test" -} +bool(false) array(1) { ["test"]=> string(8) "new http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/general_functions/parse_ini_file.phpt?r1=1.8&r2=1.9&diff_format=u Index: php-src/ext/standard/tests/general_functions/parse_ini_file.phpt diff -u php-src/ext/standard/tests/general_functions/parse_ini_file.phpt:1.8 php-src/ext/standard/tests/general_functions/parse_ini_file.phpt:1.9 --- php-src/ext/standard/tests/general_functions/parse_ini_file.phpt:1.8 Thu Aug 21 13:04:43 2008 +++ php-src/ext/standard/tests/general_functions/parse_ini_file.phpt Sun Aug 31 00:19:21 2008 @@ -116,12 +116,10 @@ bool(false) Warning: parse_ini_file(%sparse_ini_file.dat): failed to open stream: No such file or directory in %sparse_ini_file.php on line 8 -array(0) { -} +bool(false) Warning: parse_ini_file(%sparse_ini_file.dat): failed to open stream: No such file or directory in %sparse_ini_file.php on line 9 -array(0) { -} +bool(false) array(1) { [u"test"]=> unicode(0) "" @@ -129,17 +127,11 @@ Warning: %s error%sin %sparse_ini_file.dat on line 2 in %sparse_ini_file.php on line 20 -array(1) { - [u"test"]=> - unicode(0) "" -} +bool(false) Warning: %serror%sin %sparse_ini_file.dat on line 2 in %sparse_ini_file.php on line 26 -array(1) { - [u"test"]=> - unicode(4) "test" -} +bool(false) array(1) { [u"test"]=> unicode(8) "new