be less forgiving for invalid image indexes

This commit is contained in:
Cristy
2024-08-07 20:58:49 -04:00
parent 27c3f995f8
commit 25db2e59fb
2 changed files with 9 additions and 6 deletions
+5 -2
View File
@@ -824,10 +824,13 @@ MagickExport Image *ReadImage(const ImageInfo *image_info,
*clones;
clones=CloneImages(image,read_info->scenes,exception);
image=DestroyImageList(image);
if (clones != (Image *) NULL)
image=GetFirstImageInList(clones);
if (image == (Image *) NULL)
{
image=DestroyImageList(image);
image=GetFirstImageInList(clones);
read_info=DestroyImageInfo(read_info);
return(image);
}
}
InitializeConstituteInfo(read_info,&constitute_info);
+4 -4
View File
@@ -219,15 +219,14 @@ MagickExport Image *CloneImages(const Image *images,const char *scenes,
*clone_images,
*image;
ssize_t
i;
size_t
length;
ssize_t
first,
i,
last,
offset,
step;
assert(images != (const Image *) NULL);
@@ -249,6 +248,7 @@ MagickExport Image *CloneImages(const Image *images,const char *scenes,
while ((isspace((int) ((unsigned char) *p)) != 0) || (*p == ','))
p++;
first=(ssize_t) strtol(p,&p,10);
offset=first;
if (first < 0)
first+=(ssize_t) length;
else
@@ -294,7 +294,7 @@ MagickExport Image *CloneImages(const Image *images,const char *scenes,
}
if (match == MagickFalse)
(void) ThrowMagickException(exception,GetMagickModule(),OptionError,
"InvalidImageIndex","`%s'",images->filename);
"InvalidImageIndex","%g `%s'",(double) offset,images->filename);
}
}
return(GetFirstImageInList(clone_images));