--- coders/psd.c +++ coders/psd.c @@ -664,6 +664,7 @@ } (void) ReadBlob(image,6,psd_info.reserved); psd_info.channels=ReadBlobMSBShort(image); + if (psd_info.channels > 24) psd_info.channels = 24; psd_info.rows=ReadBlobMSBLong(image); psd_info.columns=ReadBlobMSBLong(image); psd_info.depth=ReadBlobMSBShort(image); @@ -846,6 +847,7 @@ layer_info[i].page.height=(ReadBlobMSBLong(image)-layer_info[i].page.y); layer_info[i].page.width=(ReadBlobMSBLong(image)-layer_info[i].page.x); layer_info[i].channels=ReadBlobMSBShort(image); + if (layer_info[i].channels > 24) layer_info[i].channels = 24; if (image->debug != MagickFalse) (void) LogMagickEvent(CoderEvent,GetMagickModule()," offset(%ld,%ld), size(%ld,%ld), channels=%d", layer_info[i].page.x, layer_info[i].page.y,