Merge pull request #3199 from airween/v2/xmlfreefix

Move xmlFree() call to the right place
This commit is contained in:
Ervin Hegedus 2024-07-26 09:14:04 +02:00 committed by GitHub
commit 36601843b2
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -745,13 +745,12 @@ static int var_xml_generate(modsec_rec *msr, msre_var *var, msre_rule *rule,
}
/* Create one variable for each node in the result. */
char* content = NULL;
for(i = 0; i < nodes->nodeNr; i++) {
msre_var *rvar = NULL;
char *content = NULL;
content = (char *)xmlNodeGetContent(nodes->nodeTab[i]);
if (content != NULL) {
xmlFree(content);
rvar = apr_pmemdup(mptmp, var, sizeof(msre_var));
if (!rvar) {
msr_log(msr, 1, "XML: Memory allocation error");
@ -766,12 +765,15 @@ static int var_xml_generate(modsec_rec *msr, msre_var *var, msre_rule *rule,
}
rvar->value_len = strlen(rvar->value);
apr_table_addn(vartab, rvar->name, (void *)rvar);
xmlFree(content);
content = NULL;
count++;
}
}
var_xml_generate_Error:
if (content != NULL) xmlFree(content);
xmlXPathFreeObject(xpathObj);
xmlXPathFreeContext(xpathCtx);