From 624a0deec68db6c7d75d7bb94341c5cd77395a76 Mon Sep 17 00:00:00 2001 From: Ervin Hegedus Date: Wed, 29 Oct 2025 15:21:41 +0100 Subject: [PATCH 1/2] Fix libxml2 related deprecated issues --- src/operators/validate_dtd.cc | 6 ------ src/operators/validate_dtd.h | 3 --- src/operators/validate_schema.cc | 6 ------ src/operators/validate_schema.h | 2 -- src/request_body_processor/xml.cc | 2 -- src/request_body_processor/xml.h | 6 +----- 6 files changed, 1 insertion(+), 24 deletions(-) diff --git a/src/operators/validate_dtd.cc b/src/operators/validate_dtd.cc index 30423bd6fe..cad16b78d8 100644 --- a/src/operators/validate_dtd.cc +++ b/src/operators/validate_dtd.cc @@ -33,12 +33,6 @@ bool ValidateDTD::init(const std::string &file, std::string *error) { return false; } - xmlThrDefSetGenericErrorFunc(NULL, - null_error); - - xmlSetGenericErrorFunc(NULL, - null_error); - return true; } diff --git a/src/operators/validate_dtd.h b/src/operators/validate_dtd.h index 4056c38377..304cad12af 100644 --- a/src/operators/validate_dtd.h +++ b/src/operators/validate_dtd.h @@ -78,9 +78,6 @@ class ValidateDTD : public Operator { } - static void null_error(void *, const char *, ...) { // cppcheck-suppress[constParameterPointer,constParameterCallback] - } - private: std::string m_resource; #endif diff --git a/src/operators/validate_schema.cc b/src/operators/validate_schema.cc index 1c38ac2405..d45ef5750c 100644 --- a/src/operators/validate_schema.cc +++ b/src/operators/validate_schema.cc @@ -71,12 +71,6 @@ bool ValidateSchema::evaluate(Transaction *transaction, (xmlSchemaValidityErrorFunc)error_load, (xmlSchemaValidityWarningFunc)warn_load, &m_err); - xmlThrDefSetGenericErrorFunc(parserCtx, - null_error); - - xmlSetGenericErrorFunc(parserCtx, - null_error); - xmlSchemaPtr schema = xmlSchemaParse(parserCtx); if (schema == NULL) { std::stringstream err; diff --git a/src/operators/validate_schema.h b/src/operators/validate_schema.h index 5708cfae18..96cca8f25f 100644 --- a/src/operators/validate_schema.h +++ b/src/operators/validate_schema.h @@ -75,8 +75,6 @@ class ValidateSchema : public Operator { va_end(args); } - static void null_error(void *, const char *, ...) { // cppcheck-suppress[constParameterPointer,constParameterCallback] - } template static void callback_func(void *ctx, Pred pred, const char *base_msg, const char *msg, va_list args) { diff --git a/src/request_body_processor/xml.cc b/src/request_body_processor/xml.cc index 11e18fbe90..75d6c053b9 100644 --- a/src/request_body_processor/xml.cc +++ b/src/request_body_processor/xml.cc @@ -274,7 +274,6 @@ bool XML::processChunk(const char *buf, unsigned int size, if (m_data.parsing_ctx != NULL && m_transaction->m_secXMLParseXmlIntoArgs != RulesSetProperties::OnlyArgsConfigXMLParseXmlIntoArgs) { - xmlSetGenericErrorFunc(m_data.parsing_ctx, null_error); xmlParseChunk(m_data.parsing_ctx, buf, size, 0); m_data.xml_parser_state->parsing_ctx_arg = m_data.parsing_ctx_arg; if (m_data.parsing_ctx->wellFormed != 1) { @@ -292,7 +291,6 @@ bool XML::processChunk(const char *buf, unsigned int size, m_transaction->m_secXMLParseXmlIntoArgs == RulesSetProperties::TrueConfigXMLParseXmlIntoArgs) ) { - xmlSetGenericErrorFunc(m_data.parsing_ctx_arg, null_error); xmlParseChunk(m_data.parsing_ctx_arg, buf, size, 0); if (m_data.parsing_ctx_arg->wellFormed != 1) { error->assign("XML: Failed to parse document for ARGS."); diff --git a/src/request_body_processor/xml.h b/src/request_body_processor/xml.h index fcb8c41824..df766d03b7 100644 --- a/src/request_body_processor/xml.h +++ b/src/request_body_processor/xml.h @@ -16,7 +16,7 @@ #ifdef WITH_LIBXML2 #include #include -#include +#include #endif #include @@ -93,10 +93,6 @@ class XML { static xmlParserInputBufferPtr unloadExternalEntity(const char *URI, xmlCharEncoding enc); - static void null_error(void *ctx, const char *msg, ...) { // cppcheck-suppress[constParameterPointer,constParameterCallback] - } - - xml_data m_data; private: From b9dc9cc82fb6b3f972b0e7202f6590fd950ce2e0 Mon Sep 17 00:00:00 2001 From: Ervin Hegedus Date: Wed, 29 Oct 2025 16:14:22 +0100 Subject: [PATCH 2/2] Disable parser errors being printed to stderr --- src/request_body_processor/xml.cc | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/request_body_processor/xml.cc b/src/request_body_processor/xml.cc index 75d6c053b9..cbb7894c9b 100644 --- a/src/request_body_processor/xml.cc +++ b/src/request_body_processor/xml.cc @@ -249,6 +249,8 @@ bool XML::processChunk(const char *buf, unsigned int size, error->assign("XML: Failed to create parsing context."); return false; } + // disable parser errors being printed to stderr + m_data.parsing_ctx->options |= XML_PARSE_NOWARNING | XML_PARSE_NOERROR; } if (m_transaction->m_secXMLParseXmlIntoArgs @@ -265,6 +267,8 @@ bool XML::processChunk(const char *buf, unsigned int size, error->assign("XML: Failed to create parsing context for ARGS."); return false; } + // disable parser errors being printed to stderr + m_data.parsing_ctx_arg->options |= XML_PARSE_NOWARNING | XML_PARSE_NOERROR; } return true;