ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed");
count=ReadBlob(image,image->colors,sun_colormap);
if (count != (ssize_t) image->colors)
- ThrowReaderException(CorruptImageError,"UnexpectedEndOfFile");
+ {
+ sun_colormap=(unsigned char *) RelinquishMagickMemory(sun_colormap);
+ ThrowReaderException(CorruptImageError,"UnexpectedEndOfFile");
+ }
for (i=0; i < (ssize_t) image->colors; i++)
image->colormap[i].red=(MagickRealType) ScaleCharToQuantum(
sun_colormap[i]);
count=ReadBlob(image,image->colors,sun_colormap);
if (count != (ssize_t) image->colors)
- ThrowReaderException(CorruptImageError,"UnexpectedEndOfFile");
+ {
+ sun_colormap=(unsigned char *) RelinquishMagickMemory(sun_colormap);
+ ThrowReaderException(CorruptImageError,"UnexpectedEndOfFile");
+ }
for (i=0; i < (ssize_t) image->colors; i++)
image->colormap[i].green=(MagickRealType) ScaleCharToQuantum(
sun_colormap[i]);
count=ReadBlob(image,image->colors,sun_colormap);
if (count != (ssize_t) image->colors)
- ThrowReaderException(CorruptImageError,"UnexpectedEndOfFile");
+ {
+ sun_colormap=(unsigned char *) RelinquishMagickMemory(sun_colormap);
+ ThrowReaderException(CorruptImageError,"UnexpectedEndOfFile");
+ }
for (i=0; i < (ssize_t) image->colors; i++)
image->colormap[i].blue=(MagickRealType) ScaleCharToQuantum(
sun_colormap[i]);
if (sun_colormap == (unsigned char *) NULL)
ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed");
count=ReadBlob(image,sun_info.maplength,sun_colormap);
+ sun_colormap=(unsigned char *) RelinquishMagickMemory(sun_colormap);
if (count != (ssize_t) sun_info.maplength)
ThrowReaderException(CorruptImageError,"UnexpectedEndOfFile");
- sun_colormap=(unsigned char *) RelinquishMagickMemory(sun_colormap);
break;
}
default: