fix bug #59613 (Crash with clone XMLReader)

This commit is contained in:
Michael Wallner 2013-10-03 13:28:41 +02:00
parent 9209c19f8f
commit fc3f8a8f54
3 changed files with 27 additions and 0 deletions

4
NEWS
View file

@ -6,6 +6,10 @@ PHP NEWS
. Fixed bug #65808 (the socket_connect() won't work with IPv6 address). . Fixed bug #65808 (the socket_connect() won't work with IPv6 address).
(Mike) (Mike)
- XMLReader:
. Fixed bug #59613 (Crash with clone XMLReader). (Mike)
?? ??? 2013, PHP 5.4.21 ?? ??? 2013, PHP 5.4.21
- Core: - Core:

View file

@ -1320,6 +1320,7 @@ PHP_MINIT_FUNCTION(xmlreader)
xmlreader_object_handlers.read_property = xmlreader_read_property; xmlreader_object_handlers.read_property = xmlreader_read_property;
xmlreader_object_handlers.write_property = xmlreader_write_property; xmlreader_object_handlers.write_property = xmlreader_write_property;
xmlreader_object_handlers.get_property_ptr_ptr = xmlreader_get_property_ptr_ptr; xmlreader_object_handlers.get_property_ptr_ptr = xmlreader_get_property_ptr_ptr;
xmlreader_object_handlers.clone_obj = NULL;
INIT_CLASS_ENTRY(ce, "XMLReader", xmlreader_functions); INIT_CLASS_ENTRY(ce, "XMLReader", xmlreader_functions);
ce.create_object = xmlreader_objects_new; ce.create_object = xmlreader_objects_new;

View file

@ -0,0 +1,22 @@
--TEST--
Bug #59613 (Crash with clone XMLReader)
--SKIPIF--
<?php
extension_loaded("xmlreader") or die("skip requires xmlreader");
?>
--FILE--
<?php
echo "Test\n";
$xmlreader = new XMLReader();
$xmlreader->xml("<a><b/></a>");
$xmlreader->next();
$xmlreader2 = clone $xmlreader;
$xmlreader2->next();
?>
Done
--EXPECTF--
Test
Fatal error: Trying to clone an uncloneable object of class XMLReader in %s on line %d