Commit 8947775ec for imagemagick.org

commit 8947775ecf138e9227df57f8dee63b5f79f58387
Author: Cristy <urban-warrior@imagemagick.org>
Date:   Thu Mar 19 20:38:25 2026 -0400

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

diff --git a/coders/fits.c b/coders/fits.c
index eebab3382..375e635b5 100644
--- a/coders/fits.c
+++ b/coders/fits.c
@@ -302,24 +302,24 @@ static Image *ReadFITSImage(const ImageInfo *image_info,
       image=DestroyImageList(image);
       return((Image *) NULL);
     }
+  /*
+    Initialize image header.
+  */
+  (void) memset(&fits_info,0,sizeof(fits_info));
+  fits_info.extend=MagickFalse;
+  fits_info.simple=MagickFalse;
+  fits_info.bits_per_pixel=8;
+  fits_info.columns=1;
+  fits_info.rows=1;
+  fits_info.number_axes=0;
+  fits_info.number_planes=1;
+  fits_info.min_data=0.0;
+  fits_info.max_data=0.0;
+  fits_info.zero=0.0;
+  fits_info.scale=1.0;
+  fits_info.endian=MSBEndian;
   do
   {
-    /*
-      Initialize image header.
-    */
-    (void) memset(&fits_info,0,sizeof(fits_info));
-    fits_info.extend=MagickFalse;
-    fits_info.simple=MagickFalse;
-    fits_info.bits_per_pixel=8;
-    fits_info.columns=1;
-    fits_info.rows=1;
-    fits_info.number_axes=1;
-    fits_info.number_planes=1;
-    fits_info.min_data=0.0;
-    fits_info.max_data=0.0;
-    fits_info.zero=0.0;
-    fits_info.scale=1.0;
-    fits_info.endian=MSBEndian;
     /*
       Decode image header.
     */
@@ -411,7 +411,7 @@ static Image *ReadFITSImage(const ImageInfo *image_info,
           ThrowReaderException(CorruptImageError,"ImproperImageHeader");
         }
       if ((fits_info.columns <= 0) || (fits_info.rows <= 0) ||
-          (fits_info.number_axes <= 0) || (fits_info.number_planes <= 0))
+          (fits_info.number_axes < 0) || (fits_info.number_planes <= 0))
         {
           if (comment != (char *) NULL)
             comment=DestroyString(comment);
@@ -437,7 +437,13 @@ static Image *ReadFITSImage(const ImageInfo *image_info,
     if ((fits_info.simple == MagickFalse) || (fits_info.number_axes < 1) ||
         (fits_info.number_axes > 4) || (number_pixels == 0) ||
         (fits_info.number_planes <= 0))
-      ThrowReaderException(CorruptImageError,"ImageTypeNotSupported");
+      {
+        number_pixels=number_pixels*
+          MagickAbsoluteValue(fits_info.bits_per_pixel)/8;
+        number_pixels=((number_pixels+FITSBlocksize-1)/FITSBlocksize)*
+          FITSBlocksize;
+        (void) SeekBlob(image,(MagickOffsetType) number_pixels,SEEK_CUR);
+      }
     for (scene=0; scene < (ssize_t) fits_info.number_planes; scene++)
     {
       image->columns=(size_t) fits_info.columns;