diff --git a/apache2/msc_xml.c b/apache2/msc_xml.c index a31decb5e1..9cc4da65b8 100644 --- a/apache2/msc_xml.c +++ b/apache2/msc_xml.c @@ -137,6 +137,13 @@ int xml_complete(modsec_rec *msr, char **error_msg) { * Frees the resources used for XML parsing. */ apr_status_t xml_cleanup(modsec_rec *msr) { + if (msr->xml->parsing_ctx != NULL) { + if (msr->xml->parsing_ctx->myDoc) { + xmlFreeDoc(msr->xml->parsing_ctx->myDoc); + } + xmlFreeParserCtxt(msr->xml->parsing_ctx); + msr->xml->parsing_ctx = NULL; + } if (msr->xml->doc != NULL) { xmlFreeDoc(msr->xml->doc); msr->xml->doc = NULL;