Commit 364606e5c for imagemagick.org
commit 364606e5cb955b622b13015814e255e1dadd701b
Author: Cristy <urban-warrior@imagemagick.org>
Date: Sat Feb 7 08:40:22 2026 -0500
reset channel map when cache resources are exhausted
diff --git a/MagickCore/cache.c b/MagickCore/cache.c
index fd141f2e8..7b8bec2fe 100644
--- a/MagickCore/cache.c
+++ b/MagickCore/cache.c
@@ -3978,6 +3978,8 @@ static MagickBooleanType OpenPixelCache(Image *image,const MapMode mode,
if ((source_info.storage_class != UndefinedClass) && (mode != ReadMode))
RelinquishPixelCachePixels(&source_info);
cache_info->type=UndefinedCache;
+ (void) memset(image->channel_map,0,MaxPixelChannels*
+ sizeof(*image->channel_map));
(void) ThrowMagickException(exception,GetMagickModule(),CacheError,
"CacheResourcesExhausted","`%s'",image->filename);
return(MagickFalse);
@@ -3990,6 +3992,8 @@ static MagickBooleanType OpenPixelCache(Image *image,const MapMode mode,
if ((source_info.storage_class != UndefinedClass) && (mode != ReadMode))
RelinquishPixelCachePixels(&source_info);
cache_info->type=UndefinedCache;
+ (void) memset(image->channel_map,0,MaxPixelChannels*
+ sizeof(*image->channel_map));
(void) ThrowMagickException(exception,GetMagickModule(),CacheError,
"CacheResourcesExhausted","`%s'",image->filename);
return(MagickFalse);
@@ -4197,6 +4201,9 @@ MagickExport MagickBooleanType PersistPixelCache(Image *image,
status=AcquireMagickResource(DiskResource,cache_info->length);
if (status == MagickFalse)
{
+ cache_info->type=UndefinedCache;
+ (void) memset(image->channel_map,0,MaxPixelChannels*
+ sizeof(*image->channel_map));
(void) ThrowMagickException(exception,GetMagickModule(),CacheError,
"CacheResourcesExhausted","`%s'",image->filename);
return(MagickFalse);