summaryrefslogtreecommitdiff
path: root/ext/xmlreader
diff options
context:
space:
mode:
authorMichael Wallner <mike@php.net>2013-10-04 11:22:43 +0200
committerMichael Wallner <mike@php.net>2013-10-04 11:22:43 +0200
commit2e2bda3508444190cb9b707dffe328a263ec60a1 (patch)
tree05c67a75674543e2e126d06d0f089a75e113bd41 /ext/xmlreader
parent92fd085ebfb4cc8256cad235a51b34b246a4c3b7 (diff)
parentf6ff3a28d60c24dea2a05344d9b7eb823f09b4e5 (diff)
downloadphp-git-2e2bda3508444190cb9b707dffe328a263ec60a1.tar.gz
Merge branch 'PHP-5.4' into PHP-5.5
* PHP-5.4: Fixed bug #64230 (XMLReader does not suppress errors)
Diffstat (limited to 'ext/xmlreader')
-rw-r--r--ext/xmlreader/php_xmlreader.c2
-rw-r--r--ext/xmlreader/tests/bug64230.phpt50
2 files changed, 50 insertions, 2 deletions
diff --git a/ext/xmlreader/php_xmlreader.c b/ext/xmlreader/php_xmlreader.c
index 464998ce62..aae55c8b3e 100644
--- a/ext/xmlreader/php_xmlreader.c
+++ b/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);
diff --git a/ext/xmlreader/tests/bug64230.phpt b/ext/xmlreader/tests/bug64230.phpt
new file mode 100644
index 0000000000..0b070925f3
--- /dev/null
+++ b/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