Commit e04641767 for imagemagick.org

commit e046417675d5c26e5f48816851a406c121c77469
Author: Cristy <urban-warrior@imagemagick.org>
Date:   Sun Feb 15 22:26:57 2026 -0500

    https://github.com/ImageMagick/ImageMagick/issues/8567

diff --git a/MagickCore/cache.c b/MagickCore/cache.c
index 7b8bec2fe..6f5c44152 100644
--- a/MagickCore/cache.c
+++ b/MagickCore/cache.c
@@ -3264,8 +3264,7 @@ MagickExport const Quantum *GetVirtualPixelQueue(const Image *image)
   assert(image->cache != (Cache) NULL);
   cache_info=(CacheInfo *) image->cache;
   assert(cache_info->signature == MagickCoreSignature);
-  if (cache_info->methods.get_virtual_pixels_handler !=
-       (GetVirtualPixelsHandler) NULL)
+  if (cache_info->methods.get_virtual_pixels_handler != (GetVirtualPixelsHandler) NULL)
     return(cache_info->methods.get_virtual_pixels_handler(image));
   assert(id < (int) cache_info->number_threads);
   return(GetVirtualPixelsNexus(cache_info,cache_info->nexus_info[id]));
diff --git a/MagickCore/log.c b/MagickCore/log.c
index f18fd90df..bf0e8b69f 100644
--- a/MagickCore/log.c
+++ b/MagickCore/log.c
@@ -369,8 +369,10 @@ MagickExport void CloseMagickLog(void)
   exception=AcquireExceptionInfo();
   log_info=GetLogInfo("*",exception);
   exception=DestroyExceptionInfo(exception);
+  if (log_info == (LogInfo *) NULL)
+    return;
   LockSemaphoreInfo(log_semaphore);
-  if (log_info->file != (FILE *) NULL)
+  if ((log_info != (LogInfo *) NULL) && (log_info->file != (FILE *) NULL))
     {
       (void) FormatLocaleFile(log_info->file,"</log>\n");
       (void) fclose(log_info->file);
@@ -1361,10 +1363,12 @@ static char *TranslateEvent(const char *module,const char *function,
   exception=AcquireExceptionInfo();
   log_info=GetLogInfo("*",exception);
   exception=DestroyExceptionInfo(exception);
+  text=AcquireString(event);
+  if (log_info == (LogInfo *) NULL)
+    return(text);
   seconds=GetMagickTime();
   elapsed_time=GetElapsedTime(&log_info->timer);
   user_time=GetUserTime(&log_info->timer);
-  text=AcquireString(event);
   if (log_info->format == (char *) NULL)
     return(text);
   extent=strlen(event)+MagickPathExtent;
@@ -1573,6 +1577,8 @@ MagickExport MagickBooleanType LogMagickEventList(const LogEventType type,
   exception=AcquireExceptionInfo();
   log_info=(LogInfo *) GetLogInfo("*",exception);
   exception=DestroyExceptionInfo(exception);
+  if (log_info == (LogInfo *) NULL)
+    return(MagickFalse);
   if (log_info->event_semaphore == (SemaphoreInfo *) NULL)
     ActivateSemaphoreInfo(&log_info->event_semaphore);
   LockSemaphoreInfo(log_info->event_semaphore);
@@ -1903,6 +1909,8 @@ MagickExport void SetLogMethod(MagickLogMethod method)
   exception=AcquireExceptionInfo();
   log_info=(LogInfo *) GetLogInfo("*",exception);
   exception=DestroyExceptionInfo(exception);
+  if (log_info == (LogInfo *) NULL)
+    return;
   LockSemaphoreInfo(log_semaphore);
   log_info=(LogInfo *) GetValueFromLinkedList(log_cache,0);
   log_info->handler_mask=(LogHandlerType) (log_info->handler_mask |
diff --git a/MagickCore/quantum-export.c b/MagickCore/quantum-export.c
index b16f34f35..f0839981f 100644
--- a/MagickCore/quantum-export.c
+++ b/MagickCore/quantum-export.c
@@ -1360,10 +1360,14 @@ static void ExportCMYKQuantum(const Image *image,QuantumInfo *quantum_info,
         {
           for (x=0; x < (ssize_t) number_pixels; x++)
           {
-            q=PopQuantumFloatPixel(quantum_info,(float) GetPixelRed(image,p),q);
-            q=PopQuantumFloatPixel(quantum_info,(float) GetPixelGreen(image,p),q);
-            q=PopQuantumFloatPixel(quantum_info,(float) GetPixelBlue(image,p),q);
-            q=PopQuantumFloatPixel(quantum_info,(float) GetPixelBlack(image,p),q);
+            q=PopQuantumFloatPixel(quantum_info,(float) GetPixelRed(image,p),
+              q);
+            q=PopQuantumFloatPixel(quantum_info,(float) GetPixelGreen(image,p),
+              q);
+            q=PopQuantumFloatPixel(quantum_info,(float) GetPixelBlue(image,p),
+              q);
+            q=PopQuantumFloatPixel(quantum_info,(float) GetPixelBlack(image,p),
+              q);
             p+=(ptrdiff_t) GetPixelChannels(image);
             q+=(ptrdiff_t) quantum_info->pad;
           }
@@ -1390,10 +1394,14 @@ static void ExportCMYKQuantum(const Image *image,QuantumInfo *quantum_info,
         {
           for (x=0; x < (ssize_t) number_pixels; x++)
           {
-            q=PopQuantumDoublePixel(quantum_info,(double) GetPixelRed(image,p),q);
-            q=PopQuantumDoublePixel(quantum_info,(double) GetPixelGreen(image,p),q);
-            q=PopQuantumDoublePixel(quantum_info,(double) GetPixelBlue(image,p),q);
-            q=PopQuantumDoublePixel(quantum_info,(double) GetPixelBlack(image,p),q);
+            q=PopQuantumDoublePixel(quantum_info,(double)
+              GetPixelRed(image,p),q);
+            q=PopQuantumDoublePixel(quantum_info,(double)
+              GetPixelGreen(image,p),q);
+            q=PopQuantumDoublePixel(quantum_info,(double)
+              GetPixelBlue(image,p),q);
+            q=PopQuantumDoublePixel(quantum_info,(double)
+              GetPixelBlack(image,p),q);
             p+=(ptrdiff_t) GetPixelChannels(image);
             q+=(ptrdiff_t) quantum_info->pad;
           }
@@ -1694,9 +1702,12 @@ static void ExportCMYKOQuantum(const Image *image,QuantumInfo *quantum_info,
               float_pixel;

             q=PopQuantumFloatPixel(quantum_info,(float) GetPixelRed(image,p),q);
-            q=PopQuantumFloatPixel(quantum_info,(float) GetPixelGreen(image,p),q);
-            q=PopQuantumFloatPixel(quantum_info,(float) GetPixelBlue(image,p),q);
-            q=PopQuantumFloatPixel(quantum_info,(float) GetPixelBlack(image,p),q);
+            q=PopQuantumFloatPixel(quantum_info,(float) GetPixelGreen(image,p),
+              q);
+            q=PopQuantumFloatPixel(quantum_info,(float) GetPixelBlue(image,p),
+              q);
+            q=PopQuantumFloatPixel(quantum_info,(float) GetPixelBlack(image,p),
+              q);
             float_pixel=(float) (GetPixelOpacity(image,p));
             q=PopQuantumFloatPixel(quantum_info,float_pixel,q);
             p+=(ptrdiff_t) GetPixelChannels(image);
@@ -1730,10 +1741,14 @@ static void ExportCMYKOQuantum(const Image *image,QuantumInfo *quantum_info,

           for (x=0; x < (ssize_t) number_pixels; x++)
           {
-            q=PopQuantumDoublePixel(quantum_info,(double) GetPixelRed(image,p),q);
-            q=PopQuantumDoublePixel(quantum_info,(double) GetPixelGreen(image,p),q);
-            q=PopQuantumDoublePixel(quantum_info,(double) GetPixelBlue(image,p),q);
-            q=PopQuantumDoublePixel(quantum_info,(double) GetPixelBlack(image,p),q);
+            q=PopQuantumDoublePixel(quantum_info,(double)
+              GetPixelRed(image,p),q);
+            q=PopQuantumDoublePixel(quantum_info,(double)
+              GetPixelGreen(image,p),q);
+            q=PopQuantumDoublePixel(quantum_info,(double)
+              GetPixelBlue(image,p),q);
+            q=PopQuantumDoublePixel(quantum_info,(double)
+              GetPixelBlack(image,p),q);
             pixel=(double) (GetPixelOpacity(image,p));
             q=PopQuantumDoublePixel(quantum_info,pixel,q);
             p+=(ptrdiff_t) GetPixelChannels(image);
@@ -1759,8 +1774,8 @@ static void ExportCMYKOQuantum(const Image *image,QuantumInfo *quantum_info,
           range),q);
         q=PopQuantumPixel(quantum_info,ScaleQuantumToAny(GetPixelBlack(image,p),
           range),q);
-        q=PopQuantumPixel(quantum_info,ScaleQuantumToAny(GetPixelOpacity(image,p),
-          range),q);
+        q=PopQuantumPixel(quantum_info,ScaleQuantumToAny(
+          GetPixelOpacity(image,p),range),q);
         p+=(ptrdiff_t) GetPixelChannels(image);
         q+=(ptrdiff_t) quantum_info->pad;
       }
@@ -3654,12 +3669,12 @@ MagickExport size_t ExportQuantumPixels(const Image *image,
   const QuantumType quantum_type,unsigned char *magick_restrict pixels,
   ExceptionInfo *exception)
 {
-  MagickSizeType
-    number_pixels;
-
   const Quantum
     *magick_restrict p;

+  MagickSizeType
+    number_pixels;
+
   size_t
     extent;

@@ -3689,6 +3704,8 @@ MagickExport size_t ExportQuantumPixels(const Image *image,
       number_pixels=GetCacheViewExtent(image_view);
       p=GetCacheViewVirtualPixelQueue(image_view);
     }
+  if (p == (Quantum *) NULL)
+    return(0);
   if (quantum_info->alpha_type == AssociatedQuantumAlpha)
     {
       double
@@ -3815,7 +3832,8 @@ MagickExport size_t ExportQuantumPixels(const Image *image,
     case GreenQuantum:
     case MagentaQuantum:
     {
-      ExportPixelChannel(image,quantum_info,number_pixels,p,q,GreenPixelChannel);
+      ExportPixelChannel(image,quantum_info,number_pixels,p,q,
+        GreenPixelChannel);
       break;
     }
     case IndexQuantum:
diff --git a/MagickCore/quantum-import.c b/MagickCore/quantum-import.c
index 18b32ef48..77307a9dd 100644
--- a/MagickCore/quantum-import.c
+++ b/MagickCore/quantum-import.c
@@ -4311,12 +4311,12 @@ MagickExport size_t ImportQuantumPixels(const Image *image,
   const QuantumType quantum_type,const unsigned char *magick_restrict pixels,
   ExceptionInfo *exception)
 {
-  MagickSizeType
-    number_pixels;
-
   const unsigned char
     *magick_restrict p;

+  MagickSizeType
+    number_pixels;
+
   ssize_t
     x;

@@ -4348,6 +4348,8 @@ MagickExport size_t ImportQuantumPixels(const Image *image,
       number_pixels=GetCacheViewExtent(image_view);
       q=GetCacheViewAuthenticPixelQueue(image_view);
     }
+  if (q == (Quantum *) NULL)
+    return(0);
   ResetQuantumState(quantum_info);
   extent=GetQuantumExtent(image,quantum_info,quantum_type);
   switch (quantum_type)
diff --git a/MagickCore/transform.c b/MagickCore/transform.c
index b6cf71a81..4347c59f7 100644
--- a/MagickCore/transform.c
+++ b/MagickCore/transform.c
@@ -2076,11 +2076,13 @@ MagickPrivate MagickBooleanType TransformImage(Image **image,
         }
       *image=transform_image;
     }
-  if (image_geometry == (const char *) NULL)
-    return(MagickTrue);
+  if (transform_image == (Image *) NULL)
+    return(MagickFalse);
   /*
     Scale image to a user specified size.
   */
+  if (image_geometry == (const char *) NULL)
+    return(MagickTrue);
   (void) ParseRegionGeometry(transform_image,image_geometry,&geometry,
     exception);
   if ((transform_image->columns == geometry.width) &&
diff --git a/MagickCore/xml-tree.c b/MagickCore/xml-tree.c
index f977399a6..12df2b215 100644
--- a/MagickCore/xml-tree.c
+++ b/MagickCore/xml-tree.c
@@ -2273,9 +2273,7 @@ MagickExport XMLTreeInfo *NewXMLTreeTag(const char *tag)
   XMLTreeRoot
     *root;

-  root=(XMLTreeRoot *) AcquireMagickMemory(sizeof(*root));
-  if (root == (XMLTreeRoot *) NULL)
-    return((XMLTreeInfo *) NULL);
+  root=(XMLTreeRoot *) AcquireCriticalMemory(sizeof(*root));
   (void) memset(root,0,sizeof(*root));
   root->root.tag=(char *) NULL;
   if (tag != (char *) NULL)