]> granicus.if.org Git - imagemagick/commitdiff
Check result of call to xmlAddChild to fix memory leak reported in #1764.
authorDirk Lemstra <dirk@lemstra.org>
Sun, 27 Oct 2019 06:41:56 +0000 (07:41 +0100)
committerDirk Lemstra <dirk@lemstra.org>
Sun, 27 Oct 2019 06:41:56 +0000 (07:41 +0100)
coders/msl.c
coders/svg.c

index c2293555f2efd5de73b6894bd4f44f4a0fcd156f..514356796130d11b6a1888c9d094332d832775f6 100644 (file)
@@ -7715,7 +7715,9 @@ static void MSLCDataBlock(void *context,const xmlChar *value,int length)
       xmlTextConcat(child,value,length);
       return;
     }
-  (void) xmlAddChild(parser->node,xmlNewCDataBlock(parser->myDoc,value,length));
+  child=xmlNewCDataBlock(parser->myDoc,value,length);
+  if (xmlAddChild(parser->node,child) == (xmlNodePtr) NULL)
+    xmlFreeNode(child);
 }
 
 static void MSLExternalSubset(void *context,const xmlChar *name,
index 6669000849e9b9f7e5c608ee7b24c939d5a74285..48fcd3b1b744188bf3637a21b1314e753916671f 100644 (file)
@@ -3107,7 +3107,9 @@ static void SVGCDataBlock(void *context,const xmlChar *value,int length)
       xmlTextConcat(child,value,length);
       return;
     }
-  (void) xmlAddChild(parser->node,xmlNewCDataBlock(parser->myDoc,value,length));
+  child=xmlNewCDataBlock(parser->myDoc,value,length);
+  if (xmlAddChild(parser->node,child) == (xmlNodePtr) NULL)
+    xmlFreeNode(child);
 }
 
 static void SVGExternalSubset(void *context,const xmlChar *name,