Commit 7d3a270ca for imagemagick.org

commit 7d3a270ca2d9542920a1045900dcbb5195f87fe6
Author: Cristy <urban-warrior@imagemagick.org>
Date:   Wed Sep 16 12:48:05 2026 -0400

    https://github.com/ImageMagick/ImageMagick/security/advisories/GHSA-w6hf-vvx5-4qmj

diff --git a/MagickWand/mogrify.c b/MagickWand/mogrify.c
index cf2ec3fa2..ca820e69e 100644
--- a/MagickWand/mogrify.c
+++ b/MagickWand/mogrify.c
@@ -8825,17 +8825,28 @@ WandExport MagickBooleanType MogrifyImageList(ImageInfo *image_info,
           }
         if (LocaleCompare("process",option+1) == 0)
           {
+#define DestroyArguments(arguments,number_arguments) \
+          do \
+          { \
+            ssize_t j = 0; \
+            for ( ; j < (ssize_t) (number_arguments); j++) \
+              (arguments)[j]=DestroyString((arguments)[j]); \
+            (arguments)=(char **) RelinquishMagickMemory(arguments); \
+          } while (0)
+
             char
               **arguments;

             int
-              j,
               number_arguments;

             (void) SyncImagesSettings(mogrify_info,*images,exception);
             arguments=StringToArgv(argv[i+1],&number_arguments);
             if ((arguments == (char **) NULL) || (number_arguments == 1))
-              break;
+              {
+                DestroyArguments(arguments,number_arguments);
+                break;
+              }
             if ((argc > 1) && (strchr(arguments[1],'=') != (char *) NULL))
               {
                 char
@@ -8865,7 +8876,10 @@ WandExport MagickBooleanType MogrifyImageList(ImageInfo *image_info,
                   token=(char *) AcquireQuantumMemory(length+MagickPathExtent,
                     sizeof(*token));
                 if (token == (char *) NULL)
-                  break;
+                  {
+                    DestroyArguments(arguments,number_arguments);
+                    break;
+                  }
                 next=0;
                 argument=argv[i+1];
                 token_info=AcquireTokenInfo();
@@ -8882,14 +8896,13 @@ WandExport MagickBooleanType MogrifyImageList(ImageInfo *image_info,
                       exception);
                   }
                 token=DestroyString(token);
+                DestroyArguments(arguments,number_arguments);
                 break;
               }
             (void) SubstituteString(&arguments[1],"-","");
             (void) InvokeDynamicImageFilter(arguments[1],&(*images),
               number_arguments-2,(const char **) arguments+2,exception);
-            for (j=0; j < number_arguments; j++)
-              arguments[j]=DestroyString(arguments[j]);
-            arguments=(char **) RelinquishMagickMemory(arguments);
+            DestroyArguments(arguments,number_arguments);
             break;
           }
         break;
diff --git a/MagickWand/operation.c b/MagickWand/operation.c
index f3543eaa7..d1841ba55 100644
--- a/MagickWand/operation.c
+++ b/MagickWand/operation.c
@@ -4592,7 +4592,7 @@ static MagickBooleanType CLIListOperatorImages(MagickCLI *cli_wand,
         }
       if (LocaleCompare("process",option+1) == 0)
         {
-#define DestroyArguments(arguments,argc) \
+#define DestroyArguments(arguments,number_arguments) \
           do \
           { \
             ssize_t j = 0; \