Commit 08b9f2747 for imagemagick.org

commit 08b9f2747c0399948b67cf329c7091c5db069bcc
Author: Cristy <urban-warrior@imagemagick.org>
Date:   Mon May 18 20:08:23 2026 -0400

    https://github.com/ImageMagick/ImageMagick/security/advisories/GHSA-9hqg-xf93-ghfw

diff --git a/coders/jpeg.c b/coders/jpeg.c
index f7a7197d6..e12f341e1 100644
--- a/coders/jpeg.c
+++ b/coders/jpeg.c
@@ -1639,6 +1639,9 @@ static MagickBooleanType ReadMPOImages(const ImageInfo *image_info,
     count,
     j = 0;

+  MagickBooleanType
+    is_blob_readable;
+
   unsigned char
     alt_signature[SIGNATURE_SIZE] = {0xff, 0xd8, 0xff, 0xe1},
     buffer[BUFFER_SIZE],
@@ -1654,8 +1657,10 @@ static MagickBooleanType ReadMPOImages(const ImageInfo *image_info,
       image=DestroyImageList(image);
       return(MagickFalse);
     }
+  is_blob_readable=MagickTrue;
   (void) SeekBlob(image,offset,SEEK_SET);
-  while ((count=ReadBlob(image,BUFFER_SIZE,buffer)) != 0)
+  while ((is_blob_readable != MagickFalse) &&
+         (count=ReadBlob(image,BUFFER_SIZE,buffer)) != 0)
   {
     ssize_t
       i;
@@ -1678,6 +1683,7 @@ static MagickBooleanType ReadMPOImages(const ImageInfo *image_info,
       offset+=i-SIGNATURE_SIZE+1;
       old_offset=offset;
       (void) CloseBlob(image);
+      is_blob_readable=MagickFalse;
       jpeg_image=ReadOneJPEGImage(image_info,jpeg_info,&offset,exception);
       if (jpeg_image != (Image *) NULL)
         AppendImageToList(&images,jpeg_image);
@@ -1686,6 +1692,7 @@ static MagickBooleanType ReadMPOImages(const ImageInfo *image_info,
       status=OpenBlob(image_info,image,ReadBinaryBlobMode,exception);
       if (status == MagickFalse)
         break;
+      is_blob_readable=MagickTrue;
       (void) SeekBlob(image,offset,SEEK_SET);
       count=0;
       j=0;