]> granicus.if.org Git - imagemagick/commitdiff
Fixed reading of an uninitialized value.
authorDirk Lemstra <dirk@git.imagemagick.org>
Tue, 9 Jan 2018 23:39:15 +0000 (00:39 +0100)
committerDirk Lemstra <dirk@git.imagemagick.org>
Tue, 9 Jan 2018 23:39:15 +0000 (00:39 +0100)
Credit to OSS-Fuzz

coders/wpg.c

index d89d1c979d4bca7f7427aaae0bec88280233021a..82bd9eaa8c16fd2a3a84691d54cb7589f9555d24 100644 (file)
@@ -750,6 +750,8 @@ static Image *ExtractPostscript(Image *image,const ImageInfo *image_info,
   unsigned char
     magick[2*MagickPathExtent];
 
+  ssize_t
+    count;
 
   if ((clone_info=CloneImageInfo(image_info)) == NULL)
     return(image);
@@ -764,7 +766,9 @@ static Image *ExtractPostscript(Image *image,const ImageInfo *image_info,
 
   /* Copy postscript to temporary file */
   (void) SeekBlob(image,PS_Offset,SEEK_SET);
-  (void) ReadBlob(image, 2*MagickPathExtent, magick);
+  count=ReadBlob(image, 2*MagickPathExtent, magick);
+  if (count < 1)
+    ThrowReaderException(CorruptImageError,"ImproperImageHeader");
 
   (void) SeekBlob(image,PS_Offset,SEEK_SET);
   while (PS_Size-- > 0)
@@ -777,7 +781,7 @@ static Image *ExtractPostscript(Image *image,const ImageInfo *image_info,
   (void) fclose(ps_file);
 
     /* Detect file format - Check magic.mgk configuration file. */
-  magic_info=GetMagicInfo(magick,2*MagickPathExtent,exception);
+  magic_info=GetMagicInfo(magick,count,exception);
   if(magic_info == (const MagicInfo *) NULL) goto FINISH_UNL;
   /*     printf("Detected:%s  \n",magic_info->name); */
   if(exception->severity != UndefinedException) goto FINISH_UNL;