From 0fa1546bf351bd6a459a5ad9695e49ebc592ddd1 Mon Sep 17 00:00:00 2001 From: cristy Date: Mon, 1 Dec 2014 23:11:58 +0000 Subject: [PATCH] --- coders/sun.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) 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); -- 2.40.0