]> granicus.if.org Git - imagemagick/commitdiff
...
authorCristy <urban-warrior@imagemagick.org>
Sun, 9 Dec 2018 14:50:49 +0000 (09:50 -0500)
committerCristy <urban-warrior@imagemagick.org>
Sun, 9 Dec 2018 14:50:49 +0000 (09:50 -0500)
MagickCore/list.c

index 3516913f985a6480ddc59717510e0c761a26ffe0..d0fb00973a5845359e1e81b343b28f39d47f0650 100644 (file)
@@ -237,6 +237,9 @@ MagickExport Image *CloneImages(const Image *images,const char *scenes,
   length=GetImageListLength(images);
   for (p=(char *) scenes; *p != '\0';)
   {
+    MagickBooleanType
+      match;
+
     while ((isspace((int) ((unsigned char) *p)) != 0) || (*p == ','))
       p++;
     first=(ssize_t) strtol(p,&p,10);
@@ -257,15 +260,10 @@ MagickExport Image *CloneImages(const Image *images,const char *scenes,
           if (last > (ssize_t) length)
             last=(ssize_t) length;
       }
-    first=MagickMin(MagickMax(first,0),(ssize_t) length);
-    last=MagickMin(MagickMax(last,0),(ssize_t) length);
+    match=MagickFalse;
     step=(ssize_t) (first > last ? -1 : 1);
     for ( ; first != (last+step); first+=step)
     {
-      size_t
-        clone_length;
-
-      clone_length=GetImageListLength(clone_images);
       i=0;
       for (next=images; next != (Image *) NULL; next=GetNextImageInList(next))
       {
@@ -275,10 +273,11 @@ MagickExport Image *CloneImages(const Image *images,const char *scenes,
             if (image == (Image *) NULL)
               break;
             AppendImageToList(&clone_images,image);
+            match=MagickTrue;
           }
         i++;
       }
-      if (clone_length == GetImageListLength(clone_images))
+      if (match == MagickFalse)
         (void) ThrowMagickException(exception,GetMagickModule(),OptionError,
           "InvalidImageIndex","`%s'",images->filename);
     }