Browse Source

Merge branch 'PHP-5.4' into PHP-5.5

* PHP-5.4:
  Fixed bug #64230 (XMLReader does not suppress errors)
pull/478/merge
Michael Wallner 12 years ago
parent
commit
2e2bda3508
  1. 2
      ext/xmlreader/php_xmlreader.c
  2. 50
      ext/xmlreader/tests/bug64230.phpt

2
ext/xmlreader/php_xmlreader.c

@ -805,7 +805,6 @@ PHP_METHOD(xmlreader, read)
if (intern != NULL && intern->ptr != NULL) {
retval = xmlTextReaderRead(intern->ptr);
if (retval == -1) {
php_error_docref(NULL TSRMLS_CC, E_WARNING, "An Error Occurred while reading");
RETURN_FALSE;
} else {
RETURN_BOOL(retval);
@ -847,7 +846,6 @@ PHP_METHOD(xmlreader, next)
retval = xmlTextReaderNext(intern->ptr);
}
if (retval == -1) {
php_error_docref(NULL TSRMLS_CC, E_WARNING, "An Error Occurred while reading");
RETURN_FALSE;
} else {
RETURN_BOOL(retval);

50
ext/xmlreader/tests/bug64230.phpt

@ -0,0 +1,50 @@
--TEST--
Bug #64230 (XMLReader does not suppress errors)
--SKIPIF--
<?php
extension_loaded("xmlreader") or die("skip requires xmlreader");
?>
--FILE--
<?php
echo "Test\n";
function show_internal_errors() {
foreach (libxml_get_errors() as $error) {
printf("Internal: %s\n", $error->message);
}
libxml_clear_errors();
}
echo "Internal errors TRUE\n";
libxml_use_internal_errors(true);
$x = new XMLReader;
$x->xml("<root att/>");
$x->read();
show_internal_errors();
echo "Internal errors FALSE\n";
libxml_use_internal_errors(false);
$x = new XMLReader;
$x->xml("<root att/>");
$x->read();
show_internal_errors();
?>
Done
--EXPECTF--
Test
Internal errors TRUE
Internal: Specification mandate value for attribute att
Internal errors FALSE
Warning: XMLReader::read(): %s: parser error : Specification mandate value for attribute att in %s on line %d
Warning: XMLReader::read(): <root att/> in %s on line %d
Warning: XMLReader::read(): ^ in %s on line %d
Done
Loading…
Cancel
Save