Commit 297c894d3 for imagemagick.org

commit 297c894d33956fbbba9e573ebe5647d7f5aec76b
Author: Cristy <urban-warrior@imagemagick.org>
Date:   Mon Jul 20 07:26:47 2026 -0400

    https://github.com/ImageMagick/ImageMagick/security/advisories/GHSA-6rvv-36hw-5rgf

diff --git a/MagickCore/distribute-cache.c b/MagickCore/distribute-cache.c
index a7c981688..0f8ed729e 100644
--- a/MagickCore/distribute-cache.c
+++ b/MagickCore/distribute-cache.c
@@ -172,7 +172,7 @@ static inline MagickOffsetType dpc_read(SOCKET_TYPE file,
       else
         {
           if (errno != EINTR)
-            continue;
+            break;
         }
   }
   return(offset);
@@ -1275,6 +1275,32 @@ MagickExport void DistributePixelCacheServer(const int port,
           client_socket_ptr);
         continue;
       }
+#if defined(MAGICKCORE_HAVE_WINSOCK2)
+    {
+      DWORD
+        timeout = 5000;
+
+      status=setsockopt(*client_socket_ptr,SOL_SOCKET,SO_RCVTIMEO,
+        (const char *) &timeout,sizeof(timeout));
+    }
+#else
+    {
+      struct timeval
+        tv;
+
+      tv.tv_sec=5;
+      tv.tv_usec=0;
+      status=setsockopt(*client_socket_ptr,SOL_SOCKET,SO_RCVTIMEO,&tv,
+        sizeof(tv));
+    }
+#endif
+    if (status == -1)
+      {
+        CLOSE_SOCKET(*client_socket_ptr);
+        client_socket_ptr=(SOCKET_TYPE *) RelinquishMagickMemory(
+          client_socket_ptr);
+        continue;
+      }
 #if defined(MAGICKCORE_THREAD_SUPPORT)
     status=pthread_create(&thread_id,&attributes,DistributePixelCacheClient,
       (void *) client_socket_ptr);
@@ -1282,14 +1308,14 @@ MagickExport void DistributePixelCacheServer(const int port,
       {
         CLOSE_SOCKET(*client_socket_ptr);
         RelinquishMagickMemory(client_socket_ptr);
-        ThrowFatalException(CacheFatalError,"UnableToCreateClientThread");
+        continue;
       }
 #elif defined(_MSC_VER)
     if (CreateThread(0,0,DistributePixelCacheClient,(void*) client_socket_ptr,0,&threadID) == (HANDLE) NULL)
       {
         CLOSE_SOCKET(*client_socket_ptr);
         RelinquishMagickMemory(client_socket_ptr);
-        ThrowFatalException(CacheFatalError,"UnableToCreateClientThread");
+        continue;
       }
 #else
     Not implemented!