Fix #71592: External entity processing never fails #3596
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
If the callback set via
xml_set_external_entity_ref_handler()returnsa falsy value, parsing is supposed to stop and the error number set to
XML_ERROR_EXTERNAL_ENTITY_HANDLING. This is already correctly doneby the libexpat binding, but the libxml2 binding ignores the return
value. We fix this by calling
xmlStopParser()which is available asof libxml 2.1.0[1] (PHP-7.1 requires at least libxml 2.6.11 anyway),
and setting the desired
errNoourselves.[1] http://xmlsoft.org/news.html