summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Wellnhofer <wellnhofer@aevum.de>2019-08-25 13:58:41 +0200
committerNick Wellnhofer <wellnhofer@aevum.de>2019-08-25 14:12:34 +0200
commit09b6f8183d05719830de80334dea83edeeec44e6 (patch)
tree2f79ccde638d4c59a71960a8d28b21314aa69151
parent01d8cf07d9136aa2ecb1e4925a239973cbc89285 (diff)
downloadlibxml2-09b6f8183d05719830de80334dea83edeeec44e6.tar.gz
Fix potential null deref in xmlRelaxNGParsePatterns
Thanks to Zhongyuan Zhou for the initial patch.
-rw-r--r--relaxng.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/relaxng.c b/relaxng.c
index 268c4e76..53125c8b 100644
--- a/relaxng.c
+++ b/relaxng.c
@@ -5548,12 +5548,16 @@ xmlRelaxNGParsePatterns(xmlRelaxNGParserCtxtPtr ctxt, xmlNodePtr nodes,
while (nodes != NULL) {
if (IS_RELAXNG(nodes, "element")) {
cur = xmlRelaxNGParseElement(ctxt, nodes);
+ if (cur == NULL)
+ return (NULL);
if (def == NULL) {
def = last = cur;
} else {
if ((group == 1) && (def->type == XML_RELAXNG_ELEMENT) &&
(def == last)) {
def = xmlRelaxNGNewDefine(ctxt, nodes);
+ if (def == NULL)
+ return (NULL);
def->type = XML_RELAXNG_GROUP;
def->content = last;
}