tony2001 Thu Mar 8 00:44:23 2007 UTC
Added files: (Branch: PHP_5_2)
/php-src/ext/standard/tests/general_functions bug40752.phpt
Modified files:
/php-src NEWS
/php-src/ext/standard basic_functions.c
Log:
MFH: fix #40752 (parse_ini_file() segfaults when a scalar setting is
redeclared as an array)
http://cvs.php.net/viewvc.cgi/php-src/NEWS?r1=1.2027.2.547.2.577&r2=1.2027.2.547.2.578&diff_format=u
Index: php-src/NEWS
diff -u php-src/NEWS:1.2027.2.547.2.577 php-src/NEWS:1.2027.2.547.2.578
--- php-src/NEWS:1.2027.2.547.2.577 Wed Mar 7 09:03:07 2007
+++ php-src/NEWS Thu Mar 8 00:44:23 2007
@@ -15,6 +15,8 @@
- Added --ri switch to CLI which allows to check extension information.
(Marcus)
- Added tidyNode::getParent() method (John, Nuno)
- Fixed zend_llist_remove_tail (Michael Wallner, Dmitry)
+- Fixed bug #40752 (parse_ini_file() segfaults when a scalar setting is
+ redeclared as an array). (Tony)
- Fixed bug #40727 (segfault in PDO when failed to bind parameters). (Tony)
- Fixed bug #40709 (array_reduce() behaves strange with one item stored
arrays).
(Ilia)
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/basic_functions.c?r1=1.725.2.31.2.43&r2=1.725.2.31.2.44&diff_format=u
Index: php-src/ext/standard/basic_functions.c
diff -u php-src/ext/standard/basic_functions.c:1.725.2.31.2.43
php-src/ext/standard/basic_functions.c:1.725.2.31.2.44
--- php-src/ext/standard/basic_functions.c:1.725.2.31.2.43 Thu Feb 22
08:23:17 2007
+++ php-src/ext/standard/basic_functions.c Thu Mar 8 00:44:23 2007
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: basic_functions.c,v 1.725.2.31.2.43 2007/02/22 08:23:17 dmitry Exp $ */
+/* $Id: basic_functions.c,v 1.725.2.31.2.44 2007/03/08 00:44:23 tony2001 Exp $
*/
#include "php.h"
#include "php_streams.h"
@@ -6130,6 +6130,12 @@
}
}
+ if (Z_TYPE_P(hash) != IS_ARRAY) {
+ zval_dtor(hash);
+ INIT_PZVAL(hash);
+ array_init(hash);
+ }
+
ALLOC_ZVAL(element);
*element = *arg2;
zval_copy_ctor(element);
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/general_functions/bug40752.phpt?view=markup&rev=1.1
Index: php-src/ext/standard/tests/general_functions/bug40752.phpt
+++ php-src/ext/standard/tests/general_functions/bug40752.phpt
--TEST--
Bug #40752 (parse_ini_file() segfaults when a scalar setting is redeclared as
an array)
--FILE--
<?php
$file = dirname(__FILE__)."/bug40752.ini";
file_put_contents($file, '
foo = 1;
foo[] = 1;
');
var_dump(parse_ini_file($file));
file_put_contents($file, '
foo[] = 1;
foo = 1;
');
var_dump(parse_ini_file($file));
unlink($file);
echo "Done\n";
?>
--EXPECTF--
array(1) {
["foo"]=>
array(1) {
[0]=>
string(1) "1"
}
}
array(1) {
["foo"]=>
string(1) "1"
}
Done
--UEXPECTF--
array(1) {
[u"foo"]=>
array(1) {
[0]=>
unicode(1) "1"
}
}
array(1) {
[u"foo"]=>
unicode(1) "1"
}
Done
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php