From: Cristy Date: Thu, 18 Apr 2019 11:04:54 +0000 (-0400) Subject: ... X-Git-Tag: 7.0.8-41~6 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=c9537454d3b34b8516f5c16fcb78ecc6277380b5;p=imagemagick ... --- diff --git a/coders/xwd.c b/coders/xwd.c index 5ecbc34c5..b6f26ec7b 100644 --- a/coders/xwd.c +++ b/coders/xwd.c @@ -251,7 +251,7 @@ static Image *ReadXWDImage(const ImageInfo *image_info,ExceptionInfo *exception) case PseudoColor: { if ((header.bits_per_pixel < 1) || (header.bits_per_pixel > 15) || - (header.colormap_entries == 0)) + (header.ncolors == 0)) ThrowReaderException(CorruptImageError,"ImproperImageHeader"); break; } @@ -318,6 +318,8 @@ static Image *ReadXWDImage(const ImageInfo *image_info,ExceptionInfo *exception) default: ThrowReaderException(CorruptImageError,"ImproperImageHeader"); } + if (header.ncolors > 65535) + ThrowReaderException(CorruptImageError,"ImproperImageHeader"); if (((header.bitmap_pad % 8) != 0) || (header.bitmap_pad > 32)) ThrowReaderException(CorruptImageError,"ImproperImageHeader"); length=(size_t) (header.header_size-sz_XWDheader);