Commit 1b63224bd for imagemagick.org

commit 1b63224bd4402808dfc323ef5ce13ba15062cb27
Author: Cristy <urban-warrior@imagemagick.org>
Date:   Thu Jun 25 07:51:31 2026 -0400

    https://github.com/ImageMagick/ImageMagick/security/advisories/GHSA-cvxf-g9w2-7mcx

diff --git a/coders/cals.c b/coders/cals.c
index 26c28b04d..d99559c0e 100644
--- a/coders/cals.c
+++ b/coders/cals.c
@@ -255,16 +255,20 @@ static Image *ReadCALSImage(const ImageInfo *image_info,
   file=(FILE *) NULL;
   unique_file=AcquireUniqueFileResource(filename);
   if (unique_file != -1)
-    file=fdopen(unique_file,"wb");
+    file=fdopen(unique_file,"rb+");
   if ((unique_file == -1) || (file == (FILE *) NULL))
     ThrowImageException(FileOpenError,"UnableToCreateTemporaryFile");
   while ((c=ReadBlobByte(image)) != EOF)
     if (fputc(c,file) != c)
       break;
-  (void) fclose(file);
+  if (fflush(file) != 0)
+    ThrowImageException(FileOpenError,"UnableToCreateTemporaryFile");
+  if (fseek(file,0,SEEK_SET) != 0)
+    ThrowImageException(FileOpenError,"UnableToCreateTemporaryFile");
   (void) CloseBlob(image);
   image=DestroyImage(image);
   read_info=CloneImageInfo(image_info);
+  read_info->file=file;
   SetImageInfoBlob(read_info,(void *) NULL,0);
   (void) FormatLocaleString(read_info->filename,MagickPathExtent,"group4:%s",
     filename);
@@ -274,6 +278,7 @@ static Image *ReadCALSImage(const ImageInfo *image_info,
   (void) CloneString(&read_info->density,message);
   read_info->orientation=(OrientationType) orientation;
   image=ReadImage(read_info,exception);
+  read_info->file=(FILE *) NULL;
   if (image != (Image *) NULL)
     {
       (void) CopyMagickString(image->filename,image_info->filename,