From 75b9ede7874c50ecb2fc3aa1de29bc769c2e8d31 Mon Sep 17 00:00:00 2001 From: Cristy Date: Sun, 5 Mar 2023 08:24:25 -0500 Subject: [PATCH] recursion detection --- coders/clip.c | 8 ++++++-- coders/histogram.c | 8 ++++++-- coders/thumbnail.c | 8 ++++++-- coders/vid.c | 8 ++++++-- 4 files changed, 24 insertions(+), 8 deletions(-) diff --git a/coders/clip.c b/coders/clip.c index d449eb445a..b0e4d3494d 100644 --- a/coders/clip.c +++ b/coders/clip.c @@ -217,6 +217,9 @@ ModuleExport void UnregisterCLIPImage(void) static MagickBooleanType WriteCLIPImage(const ImageInfo *image_info, Image *image) { + const MagickInfo + *magick_info; + Image *clip_image; @@ -238,8 +241,9 @@ static MagickBooleanType WriteCLIPImage(const ImageInfo *image_info, write_info=CloneImageInfo(image_info); *write_info->magick='\0'; (void) SetImageInfo(write_info,1,&image->exception); - if ((*write_info->magick == '\0') || - (LocaleCompare(write_info->magick,"CLIP") == 0)) + magick_info=GetMagickInfo(write_info->magick,&image->exception); + if ((magick_info == (const MagickInfo*) NULL) || + (LocaleCompare(magick_info->module,"CLIP") == 0)) (void) FormatLocaleString(clip_image->filename,MaxTextExtent,"miff:%s", write_info->filename); status=WriteImage(write_info,clip_image); diff --git a/coders/histogram.c b/coders/histogram.c index b46075b93b..1afcbd76d5 100644 --- a/coders/histogram.c +++ b/coders/histogram.c @@ -183,6 +183,9 @@ static MagickBooleanType WriteHISTOGRAMImage(const ImageInfo *image_info, const char *option; + const MagickInfo + *magick_info; + ExceptionInfo *exception; @@ -386,8 +389,9 @@ static MagickBooleanType WriteHISTOGRAMImage(const ImageInfo *image_info, write_info=CloneImageInfo(image_info); *write_info->magick='\0'; (void) SetImageInfo(write_info,1,&image->exception); - if ((*write_info->magick == '\0') || - (LocaleCompare(write_info->magick,"HISTOGRAM") == 0)) + magick_info=GetMagickInfo(write_info->magick,&image->exception); + if ((magick_info == (const MagickInfo*) NULL) || + (LocaleCompare(magick_info->module,"HISTOGRAM") == 0)) (void) FormatLocaleString(histogram_image->filename,MaxTextExtent, "miff:%s",write_info->filename); status=WriteImage(write_info,histogram_image); diff --git a/coders/thumbnail.c b/coders/thumbnail.c index 1e2bfe8c2b..7c33d34eb9 100644 --- a/coders/thumbnail.c +++ b/coders/thumbnail.c @@ -156,6 +156,9 @@ static MagickBooleanType WriteTHUMBNAILImage(const ImageInfo *image_info, const char *property; + const MagickInfo + *magick_info; + const StringInfo *profile; @@ -211,8 +214,9 @@ static MagickBooleanType WriteTHUMBNAILImage(const ImageInfo *image_info, write_info=CloneImageInfo(image_info); (void) SetImageInfo(write_info,1,&image->exception); *write_info->magick='\0'; - if ((*write_info->magick == '\0') || - (LocaleCompare(write_info->magick,"THUMBNAIL") == 0)) + magick_info=GetMagickInfo(write_info->magick,&image->exception); + if ((magick_info == (const MagickInfo*) NULL) || + (LocaleCompare(magick_info->module,"THUMBNAIL") == 0)) (void) FormatLocaleString(thumbnail_image->filename,MaxTextExtent, "miff:%s",write_info->filename); status=WriteImage(write_info,thumbnail_image); diff --git a/coders/vid.c b/coders/vid.c index 9aa4b53fea..e9a063e418 100644 --- a/coders/vid.c +++ b/coders/vid.c @@ -324,6 +324,9 @@ ModuleExport void UnregisterVIDImage(void) */ static MagickBooleanType WriteVIDImage(const ImageInfo *image_info,Image *image) { + const MagickInfo + *magick_info; + Image *montage_image; @@ -355,8 +358,9 @@ static MagickBooleanType WriteVIDImage(const ImageInfo *image_info,Image *image) write_info=CloneImageInfo(image_info); *write_info->magick='\0'; (void) SetImageInfo(write_info,1,&image->exception); - if ((*write_info->magick == '\0') || - (LocaleCompare(write_info->magick,"VID") == 0)) + magick_info=GetMagickInfo(write_info->magick,&image->exception); + if ((magick_info == (const MagickInfo*) NULL) || + (LocaleCompare(magick_info->module,"VID") == 0)) (void) FormatLocaleString(montage_image->filename,MaxTextExtent, "miff:%s",write_info->filename); status=WriteImage(write_info,montage_image);