File ImageMagick-CVE-2017-12427.patch of Package ImageMagick.11106
--- a/coders/msl.c
+++ b/coders/msl.c
@@ -7840,12 +7840,25 @@ static MagickBooleanType ProcessMSLScript(const ImageInfo *image_info,
}
if (msl_info.exception->severity == UndefinedException)
(void) xmlParseChunk(msl_info.parser," ",1,MagickTrue);
+ /*
+ Free resources.
+ */
xmlFreeParserCtxt(msl_info.parser);
(void) LogMagickEvent(CoderEvent,GetMagickModule(),"end SAX");
msl_info.group_info=(MSLGroupInfo *) RelinquishMagickMemory(
msl_info.group_info);
if (*image == (Image *) NULL)
*image=(*msl_info.image);
+ *msl_info.image_info=DestroyImageInfo(*msl_info.image_info);
+ msl_info.image_info=(ImageInfo **) RelinquishMagickMemory(
+ msl_info.image_info);
+ *msl_info.draw_info=DestroyDrawInfo(*msl_info.draw_info);
+ msl_info.draw_info=(DrawInfo **) RelinquishMagickMemory(msl_info.draw_info);
+ msl_info.image=(Image **) RelinquishMagickMemory(msl_info.image);
+ *msl_info.attributes=DestroyImage(*msl_info.attributes);
+ msl_info.attributes=(Image **) RelinquishMagickMemory(msl_info.attributes);
+ msl_info.group_info=(MSLGroupInfo *) RelinquishMagickMemory(
+ msl_info.group_info);
if ((*msl_info.image)->exception.severity != UndefinedException)
return(MagickFalse);
return(MagickTrue);