@@ -238,15 +238,17 @@ int xml_process_chunk(modsec_rec *msr, const char *buf, unsigned int size, char
238
238
239
239
/* Not a first invocation. */
240
240
msr_log (msr , 4 , "XML: Continue parsing." );
241
- if (msr -> txcfg -> parse_xml_into_args != MSC_XML_ARGS_ONLYARGS ) {
241
+ if (msr -> xml -> parsing_ctx != NULL &&
242
+ msr -> txcfg -> parse_xml_into_args != MSC_XML_ARGS_ONLYARGS ) {
242
243
xmlParseChunk (msr -> xml -> parsing_ctx , buf , size , 0 );
243
244
if (msr -> xml -> parsing_ctx -> wellFormed != 1 ) {
244
245
* error_msg = apr_psprintf (msr -> mp , "XML: Failed parsing document." );
245
246
return -1 ;
246
247
}
247
248
}
248
249
249
- if (msr -> txcfg -> parse_xml_into_args != MSC_XML_ARGS_OFF ) {
250
+ if (msr -> xml -> parsing_ctx_arg != NULL &&
251
+ msr -> txcfg -> parse_xml_into_args != MSC_XML_ARGS_OFF ) {
250
252
if (xmlParseChunk (msr -> xml -> parsing_ctx_arg , buf , size , 0 ) != 0 ) {
251
253
if (msr -> xml -> xml_error ) {
252
254
* error_msg = msr -> xml -> xml_error ;
@@ -276,7 +278,8 @@ int xml_complete(modsec_rec *msr, char **error_msg) {
276
278
277
279
/* Only if we have a context, meaning we've done some work. */
278
280
if (msr -> xml -> parsing_ctx != NULL || msr -> xml -> parsing_ctx_arg != NULL ) {
279
- if (msr -> txcfg -> parse_xml_into_args != MSC_XML_ARGS_ONLYARGS ) {
281
+ if (msr -> xml -> parsing_ctx != NULL &&
282
+ msr -> txcfg -> parse_xml_into_args != MSC_XML_ARGS_ONLYARGS ) {
280
283
/* This is how we signalise the end of parsing to libxml. */
281
284
xmlParseChunk (msr -> xml -> parsing_ctx , NULL , 0 , 1 );
282
285
@@ -295,7 +298,8 @@ int xml_complete(modsec_rec *msr, char **error_msg) {
295
298
}
296
299
}
297
300
298
- if (msr -> txcfg -> parse_xml_into_args != MSC_XML_ARGS_OFF ) {
301
+ if (msr -> xml -> parsing_ctx_arg != NULL &&
302
+ msr -> txcfg -> parse_xml_into_args != MSC_XML_ARGS_OFF ) {
299
303
if (xmlParseChunk (msr -> xml -> parsing_ctx_arg , NULL , 0 , 1 ) != 0 ) {
300
304
if (msr -> xml -> xml_error ) {
301
305
* error_msg = msr -> xml -> xml_error ;
0 commit comments