diff options
author | Michael Wallner <mike@php.net> | 2013-10-04 11:22:52 +0200 |
---|---|---|
committer | Michael Wallner <mike@php.net> | 2013-10-04 11:22:52 +0200 |
commit | e13e5b17ffce68c7ea65d3410a6b4fe433135914 (patch) | |
tree | 3235afd42e0fa716650e37f0fab26e036b32af62 | |
parent | 099b295646b108ad56d1ec3b37dfcb5812fd378c (diff) | |
parent | 2e2bda3508444190cb9b707dffe328a263ec60a1 (diff) | |
download | php-git-e13e5b17ffce68c7ea65d3410a6b4fe433135914.tar.gz |
Merge branch 'PHP-5.5'
* PHP-5.5:
Fixed bug #64230 (XMLReader does not suppress errors)
-rw-r--r-- | ext/xmlreader/php_xmlreader.c | 2 | ||||
-rw-r--r-- | ext/xmlreader/tests/bug64230.phpt | 50 |
2 files changed, 50 insertions, 2 deletions
diff --git a/ext/xmlreader/php_xmlreader.c b/ext/xmlreader/php_xmlreader.c index 6ef25a235c..76cd56f144 100644 --- a/ext/xmlreader/php_xmlreader.c +++ b/ext/xmlreader/php_xmlreader.c @@ -799,7 +799,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); @@ -841,7 +840,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 |