Skip to content

Commit 3660184

Browse files
authored
Merge pull request #3199 from airween/v2/xmlfreefix
Move xmlFree() call to the right place
2 parents 824e523 + 223ce91 commit 3660184

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed

apache2/re_variables.c

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -745,13 +745,12 @@ static int var_xml_generate(modsec_rec *msr, msre_var *var, msre_rule *rule,
745745
}
746746

747747
/* Create one variable for each node in the result. */
748+
char* content = NULL;
748749
for(i = 0; i < nodes->nodeNr; i++) {
749750
msre_var *rvar = NULL;
750-
char *content = NULL;
751751

752752
content = (char *)xmlNodeGetContent(nodes->nodeTab[i]);
753753
if (content != NULL) {
754-
xmlFree(content);
755754
rvar = apr_pmemdup(mptmp, var, sizeof(msre_var));
756755
if (!rvar) {
757756
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,
766765
}
767766
rvar->value_len = strlen(rvar->value);
768767
apr_table_addn(vartab, rvar->name, (void *)rvar);
768+
xmlFree(content);
769+
content = NULL;
769770

770771
count++;
771772
}
772773
}
773774

774775
var_xml_generate_Error:
776+
if (content != NULL) xmlFree(content);
775777
xmlXPathFreeObject(xpathObj);
776778
xmlXPathFreeContext(xpathCtx);
777779

0 commit comments

Comments
 (0)