diff -r 361f875fa818 -r d10d750052f0 xmlsecurityengine/xmlsec/src/xmlsec_xmltree.c --- a/xmlsecurityengine/xmlsec/src/xmlsec_xmltree.c Thu Apr 01 00:31:02 2010 +0300 +++ b/xmlsecurityengine/xmlsec/src/xmlsec_xmltree.c Tue Apr 27 18:31:15 2010 +0300 @@ -1640,7 +1640,7 @@ xmlFree(content); return(-1); } - xmlFree(content); + if((stopOnUnknown != 0) && (tmp == 0)) { xmlSecError(XMLSEC_ERRORS_HERE, @@ -1649,9 +1649,12 @@ XMLSEC_ERRORS_R_XMLSEC_FAILED, "value=%s", xmlSecErrorsSafeString(content)); + xmlFree(content); return(-1); } + xmlFree(content); + (*mask) |= tmp; cur = xmlSecGetNextElementNode(cur->next); }