File ImageMagick-CVE-2019-16712.patch of Package ImageMagick
diff --git a/coders/pdf.c b/coders/pdf.c
index e1452ac3f..12226b6a2 100644
--- a/coders/pdf.c
+++ b/coders/pdf.c
@@ -1205,19 +1205,19 @@ static MagickBooleanType Huffman2DEncodeImage(const ImageInfo *image_info,
unsigned char
*group4;
+ group4_image=CloneImage(inject_image,0,0,MagickTrue,&image->exception);
+ if (group4_image == (Image *) NULL)
+ return(MagickFalse);
status=MagickTrue;
write_info=CloneImageInfo(image_info);
(void) CopyMagickString(write_info->filename,"GROUP4:",MaxTextExtent);
(void) CopyMagickString(write_info->magick,"GROUP4",MaxTextExtent);
- group4_image=CloneImage(inject_image,0,0,MagickTrue,&image->exception);
- if (group4_image == (Image *) NULL)
- return(MagickFalse);
group4=(unsigned char *) ImageToBlob(write_info,group4_image,&length,
&image->exception);
group4_image=DestroyImage(group4_image);
+ write_info=DestroyImageInfo(write_info);
if (group4 == (unsigned char *) NULL)
return(MagickFalse);
- write_info=DestroyImageInfo(write_info);
if (WriteBlob(image,length,group4) != (ssize_t) length)
status=MagickFalse;
group4=(unsigned char *) RelinquishMagickMemory(group4);
diff --git a/coders/ps3.c b/coders/ps3.c
index 6d65197de..9f4668a37 100644
--- a/coders/ps3.c
+++ b/coders/ps3.c
@@ -220,19 +220,19 @@ static MagickBooleanType Huffman2DEncodeImage(const ImageInfo *image_info,
unsigned char
*group4;
+ group4_image=CloneImage(inject_image,0,0,MagickTrue,&image->exception);
+ if (group4_image == (Image *) NULL)
+ return(MagickFalse);
status=MagickTrue;
write_info=CloneImageInfo(image_info);
(void) CopyMagickString(write_info->filename,"GROUP4:",MaxTextExtent);
(void) CopyMagickString(write_info->magick,"GROUP4",MaxTextExtent);
- group4_image=CloneImage(inject_image,0,0,MagickTrue,&image->exception);
- if (group4_image == (Image *) NULL)
- return(MagickFalse);
group4=(unsigned char *) ImageToBlob(write_info,group4_image,&length,
&image->exception);
group4_image=DestroyImage(group4_image);
+ write_info=DestroyImageInfo(write_info);
if (group4 == (unsigned char *) NULL)
return(MagickFalse);
- write_info=DestroyImageInfo(write_info);
if (WriteBlob(image,length,group4) != (ssize_t) length)
status=MagickFalse;
group4=(unsigned char *) RelinquishMagickMemory(group4);