From: cristy Date: Mon, 1 Dec 2014 23:11:58 +0000 (+0000) Subject: (no commit message) X-Git-Tag: 7.0.1-0~1686 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=0fa1546bf351bd6a459a5ad9695e49ebc592ddd1;p=imagemagick --- diff --git a/coders/sun.c b/coders/sun.c index 3ef2464ac..40f0a8a9c 100644 --- a/coders/sun.c +++ b/coders/sun.c @@ -498,11 +498,13 @@ static Image *ReadSUNImage(const ImageInfo *image_info,ExceptionInfo *exception) else if (image->storage_class == PseudoClass) { + if (bytes_per_line == 0) + bytes_per_line=image->columns; length=image->rows*(image->columns+image->columns % 2); if (((sun_info.type == RT_ENCODED) && (length > (bytes_per_line*image->rows))) || ((sun_info.type != RT_ENCODED) && (length > sun_info.length))) - ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed"); + ThrowReaderException(CorruptImageError,"UnableToReadImageData"); for (y=0; y < (ssize_t) image->rows; y++) { q=QueueAuthenticPixels(image,0,y,image->columns,1,exception); @@ -534,12 +536,14 @@ static Image *ReadSUNImage(const ImageInfo *image_info,ExceptionInfo *exception) bytes_per_pixel=3; if (image->alpha_trait == BlendPixelTrait) bytes_per_pixel++; + if (bytes_per_line == 0) + bytes_per_line=bytes_per_pixel*image->columns; length=image->rows*((bytes_per_line*image->columns)+ image->columns % 2); if (((sun_info.type == RT_ENCODED) && (length > (bytes_per_line*image->rows))) || ((sun_info.type != RT_ENCODED) && (length > sun_info.length))) - ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed"); + ThrowReaderException(CorruptImageError,"UnableToReadImageData"); for (y=0; y < (ssize_t) image->rows; y++) { q=QueueAuthenticPixels(image,0,y,image->columns,1,exception);