@@ -657,6 +657,8 @@ static Image *ReadPSImage(const ImageInfo *image_info,ExceptionInfo *exception)
657657 if (count != 1 )
658658 continue ;
659659 length = extent ;
660+ if (length > GetBlobSize (image ))
661+ ThrowReaderException (CorruptImageError ,"InsufficientImageDataInFile" );
660662 profile = BlobToStringInfo ((const void * ) NULL ,length );
661663 if (profile != (StringInfo * ) NULL )
662664 {
@@ -724,8 +726,8 @@ static Image *ReadPSImage(const ImageInfo *image_info,ExceptionInfo *exception)
724726 /*
725727 Note spot names.
726728 */
727- (void ) FormatLocaleString (property ,MagickPathExtent ,"ps:SpotColor-%.20g" ,
728- (double ) (spotcolor ++ ));
729+ (void ) FormatLocaleString (property ,MagickPathExtent ,
730+ "ps:SpotColor-%.20g" , (double ) (spotcolor ++ ));
729731 for (q = command ; * q != '\0' ; q ++ )
730732 if (isspace ((int ) (unsigned char ) * q ) != 0 )
731733 break ;
@@ -895,7 +897,8 @@ static Image *ReadPSImage(const ImageInfo *image_info,ExceptionInfo *exception)
895897 (IsStringTrue (option ) != MagickFalse ))
896898 (void ) ConcatenateMagickString (options ,"-dEPSCrop " ,MagickPathExtent );
897899 if (fitPage != MagickFalse )
898- (void ) ConcatenateMagickString (options ,"-dEPSFitPage " ,MagickPathExtent );
900+ (void ) ConcatenateMagickString (options ,"-dEPSFitPage " ,
901+ MagickPathExtent );
899902 }
900903 (void ) CopyMagickString (filename ,read_info -> filename ,MagickPathExtent );
901904 (void ) AcquireUniqueFilename (filename );
@@ -1043,6 +1046,7 @@ ModuleExport size_t RegisterPSImage(void)
10431046 entry -> decoder = (DecodeImageHandler * ) ReadPSImage ;
10441047 entry -> encoder = (EncodeImageHandler * ) WritePSImage ;
10451048 entry -> magick = (IsImageFormatHandler * ) IsPS ;
1049+ entry -> flags |=CoderDecoderSeekableStreamFlag ;
10461050 entry -> flags ^=CoderAdjoinFlag ;
10471051 entry -> flags ^=CoderBlobSupportFlag ;
10481052 entry -> mime_type = ConstantString ("application/postscript" );
@@ -1051,6 +1055,7 @@ ModuleExport size_t RegisterPSImage(void)
10511055 entry -> decoder = (DecodeImageHandler * ) ReadPSImage ;
10521056 entry -> encoder = (EncodeImageHandler * ) WritePSImage ;
10531057 entry -> magick = (IsImageFormatHandler * ) IsPS ;
1058+ entry -> flags |=CoderDecoderSeekableStreamFlag ;
10541059 entry -> flags ^=CoderAdjoinFlag ;
10551060 entry -> flags ^=CoderBlobSupportFlag ;
10561061 entry -> mime_type = ConstantString ("application/postscript" );
@@ -1059,6 +1064,7 @@ ModuleExport size_t RegisterPSImage(void)
10591064 entry -> decoder = (DecodeImageHandler * ) ReadPSImage ;
10601065 entry -> encoder = (EncodeImageHandler * ) WritePSImage ;
10611066 entry -> magick = (IsImageFormatHandler * ) IsPS ;
1067+ entry -> flags |=CoderDecoderSeekableStreamFlag ;
10621068 entry -> flags ^=CoderAdjoinFlag ;
10631069 entry -> flags ^=CoderBlobSupportFlag ;
10641070 entry -> mime_type = ConstantString ("application/postscript" );
@@ -1068,6 +1074,7 @@ ModuleExport size_t RegisterPSImage(void)
10681074 entry -> decoder = (DecodeImageHandler * ) ReadPSImage ;
10691075 entry -> encoder = (EncodeImageHandler * ) WritePSImage ;
10701076 entry -> magick = (IsImageFormatHandler * ) IsPS ;
1077+ entry -> flags |=CoderDecoderSeekableStreamFlag ;
10711078 entry -> flags ^=CoderAdjoinFlag ;
10721079 entry -> flags ^=CoderBlobSupportFlag ;
10731080 entry -> mime_type = ConstantString ("application/postscript" );
@@ -1077,6 +1084,7 @@ ModuleExport size_t RegisterPSImage(void)
10771084 entry -> encoder = (EncodeImageHandler * ) WritePSImage ;
10781085 entry -> magick = (IsImageFormatHandler * ) IsPS ;
10791086 entry -> mime_type = ConstantString ("application/postscript" );
1087+ entry -> flags |=CoderDecoderSeekableStreamFlag ;
10801088 entry -> flags ^=CoderBlobSupportFlag ;
10811089 (void ) RegisterMagickInfo (entry );
10821090 return (MagickImageCoderSignature );
0 commit comments