Skip to content

Commit fc3f8a8

Browse files
committed
fix bug #59613 (Crash with clone XMLReader)
1 parent 9209c19 commit fc3f8a8

File tree

3 files changed

+27
-0
lines changed

3 files changed

+27
-0
lines changed

NEWS

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,10 @@ PHP NEWS
66
. Fixed bug #65808 (the socket_connect() won't work with IPv6 address).
77
(Mike)
88

9+
- XMLReader:
10+
. Fixed bug #59613 (Crash with clone XMLReader). (Mike)
11+
12+
913
?? ??? 2013, PHP 5.4.21
1014

1115
- Core:

ext/xmlreader/php_xmlreader.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1320,6 +1320,7 @@ PHP_MINIT_FUNCTION(xmlreader)
13201320
xmlreader_object_handlers.read_property = xmlreader_read_property;
13211321
xmlreader_object_handlers.write_property = xmlreader_write_property;
13221322
xmlreader_object_handlers.get_property_ptr_ptr = xmlreader_get_property_ptr_ptr;
1323+
xmlreader_object_handlers.clone_obj = NULL;
13231324

13241325
INIT_CLASS_ENTRY(ce, "XMLReader", xmlreader_functions);
13251326
ce.create_object = xmlreader_objects_new;

ext/xmlreader/tests/bug51963.phpt

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
--TEST--
2+
Bug #59613 (Crash with clone XMLReader)
3+
--SKIPIF--
4+
<?php
5+
extension_loaded("xmlreader") or die("skip requires xmlreader");
6+
?>
7+
--FILE--
8+
<?php
9+
echo "Test\n";
10+
11+
$xmlreader = new XMLReader();
12+
$xmlreader->xml("<a><b/></a>");
13+
14+
$xmlreader->next();
15+
$xmlreader2 = clone $xmlreader;
16+
$xmlreader2->next();
17+
?>
18+
Done
19+
--EXPECTF--
20+
Test
21+
22+
Fatal error: Trying to clone an uncloneable object of class XMLReader in %s on line %d

0 commit comments

Comments
 (0)