From c617afd6d6e46ebbb896bab96761df2168be82d1 Mon Sep 17 00:00:00 2001 From: Niels Dossche <7771979+nielsdos@users.noreply.github.com> Date: Tue, 30 Sep 2025 16:55:33 +0200 Subject: [PATCH] Fix GH-20009: XMLReader leak on RelaxNG schema failure Closes GH-20014. --- NEWS | 3 +++ ext/xmlreader/php_xmlreader.c | 1 + 2 files changed, 4 insertions(+) diff --git a/NEWS b/NEWS index d1d7335c132..c7765950f8c 100644 --- a/NEWS +++ b/NEWS @@ -48,6 +48,9 @@ PHP NEWS . Fixed bug GH-19801 (leaks in var_dump() and debug_zval_dump()). (alexandre-daubois) +- XMLReader: + . Fixed bug GH-20009 (XMLReader leak on RelaxNG schema failure). (nielsdos) + - Zip: . Fixed bug GH-19688 (Remove pattern overflow in zip addGlob()). (nielsdos) . Fixed bug GH-19932 (Memory leak in zip setEncryptionName()/setEncryptionIndex()). diff --git a/ext/xmlreader/php_xmlreader.c b/ext/xmlreader/php_xmlreader.c index dca1898f1c0..7a50b660fb5 100644 --- a/ext/xmlreader/php_xmlreader.c +++ b/ext/xmlreader/php_xmlreader.c @@ -508,6 +508,7 @@ static void php_xmlreader_set_relaxng_schema(INTERNAL_FUNCTION_PARAMETERS, int t RETURN_TRUE; } else { + xmlRelaxNGFree(schema); php_error_docref(NULL, E_WARNING, "Schema contains errors"); RETURN_FALSE; }