/*
User defined data.
*/
- profile=BlobToStringInfo((const unsigned char *) NULL,cin.file.user_length);
+ if (cin.file.user_length > GetBlobSize(image))
+ ThrowReaderException(CorruptImageError,"ImproperImageHeader");
+ profile=BlobToStringInfo((const unsigned char *) NULL,
+ cin.file.user_length);
if (profile == (StringInfo *) NULL)
ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed");
offset+=ReadBlob(image,GetStringInfoLength(profile),
entry->decoder=(DecodeImageHandler *) ReadCINImage;
entry->encoder=(EncodeImageHandler *) WriteCINImage;
entry->magick=(IsImageFormatHandler *) IsCIN;
+ entry->flags|=CoderDecoderSeekableStreamFlag
entry->flags^=CoderAdjoinFlag;
(void) RegisterMagickInfo(entry);
return(MagickImageCoderSignature);
entry=AcquireMagickInfo("RLE","RLE","Utah Run length encoded image");
entry->decoder=(DecodeImageHandler *) ReadRLEImage;
entry->magick=(IsImageFormatHandler *) IsRLE;
- entry->flags^=CoderBlobSupportFlag;
+ entry->flags|=CoderDecoderSeekableStreamFlag;
entry->flags^=CoderAdjoinFlag;
(void) RegisterMagickInfo(entry);
return(MagickImageCoderSignature);