2018-06-28 7.0.8-3 Cristy <quetzlzacatenango@image...>
* Small tweaks to compile under Cygwin.
+ * Fixed numerous use of uninitialized values, integer overflow, memory
+ exceeded, and timeouts (credit to OSS Fuzz).
2018-06-24 7.0.8-3 Cristy <quetzlzacatenango@image...>
* Release ImageMagick version 7.0.8-3, GIT revision 14489:c63c504e8:20180624.
AcquireNextImage(image_info,image,exception);
if (GetNextImageInList(image) == (Image *) NULL)
{
- image=DestroyImageList(image);
- return((Image *) NULL);
+ status=MagickFalse;
+ break;
}
image=SyncNextImageInList(image);
status=SetImageProgress(image,LoadImagesTag,TellBlob(image),
}
} while ((width != 0UL) && (height != 0UL));
(void) CloseBlob(image);
+ if (status == MagickFalse)
+ return(DestroyImageList(image));
return(GetFirstImageInList(image));
}
\f
AcquireNextImage(image_info,image,exception);
if (GetNextImageInList(image) == (Image *) NULL)
{
- image=DestroyImageList(image);
- return((Image *) NULL);
+ status=MagickFalse;
+ break;
}
image=SyncNextImageInList(image);
status=SetImageProgress(image,LoadImagesTag,TellBlob(image),
}
} while ((width != 0UL) && (height != 0UL));
(void) CloseBlob(image);
+ if (status == MagickFalse)
+ return(DestroyImageList(image));
return(GetFirstImageInList(image));
}
\f
AcquireNextImage(image_info,image,exception);
if (GetNextImageInList(image) == (Image *) NULL)
{
- image=DestroyImageList(image);
+ status=MagickFalse;
return((Image *) NULL);
}
image=SyncNextImageInList(image);
}
} while (IsBMP(magick,2) != MagickFalse);
(void) CloseBlob(image);
+ if (status == MagickFalse)
+ return(DestroyImageList(image));
return(GetFirstImageInList(image));
}
\f
AcquireNextImage(image_info,image,exception);
if (GetNextImageInList(image) == (Image *) NULL)
{
- image=DestroyImageList(image);
- return((Image *) NULL);
+ status=MagickFalse;
+ break;
}
image=SyncNextImageInList(image);
status=SetImageProgress(image,LoadImagesTag,TellBlob(image),
AcquireNextImage(image_info,image,exception);
if (GetNextImageInList(image) == (Image *) NULL)
{
- image=DestroyImageList(image);
- return((Image *) NULL);
+ status=MagickFalse;
+ break;
}
image=SyncNextImageInList(image);
status=SetImageProgress(image,LoadImagesTag,TellBlob(image),
if (redmap != (int *) NULL)
redmap=(int *) RelinquishMagickMemory(redmap);
(void) CloseBlob(image);
+ if (status == MagickFalse)
+ return(DestroyImageList(image));
return(GetFirstImageInList(image));
}
\f
AcquireNextImage(image_info,image,exception);
if (GetNextImageInList(image) == (Image *) NULL)
{
- image=DestroyImageList(image);
- return((Image *) NULL);
+ status=MagickFalse;
+ break;
}
image=SyncNextImageInList(image);
status=SetImageProgress(image,LoadImagesTag,TellBlob(image),
}
}
(void) CloseBlob(image);
+ if (status == MagickFalse)
+ return(DestroyImageList(image));
return(GetFirstImageInList(image));
}
\f
AcquireNextImage(image_info,image,exception);
if (GetNextImageInList(image) == (Image *) NULL)
{
- image=DestroyImageList(image);
- return((Image *) NULL);
+ status=MagickFalse;
+ break;
}
image=SyncNextImageInList(image);
status=SetImageProgress(image,LoadImagesTag,TellBlob(image),
}
}
(void) CloseBlob(image);
+ if (status == MagickFalse)
+ return(DestroyImageList(image));
return(GetFirstImageInList(image));
}
\f
AcquireNextImage(image_info,image,exception);
if (GetNextImageInList(image) == (Image *) NULL)
{
- image=DestroyImageList(image);
- flif_destroy_decoder(flifdec);
- pixels=(unsigned short *) RelinquishMagickMemory(pixels);
- return((Image *) NULL);
+ status=MagickFalse;
+ break;
}
image=SyncNextImageInList(image);
}
}
flif_destroy_decoder(flifdec);
pixels=(unsigned short *) RelinquishMagickMemory(pixels);
+ if (status == MagickFalse)
+ return(DestroyImageList(image));
return(image);
}
#endif
AcquireNextImage(image_info,image,exception);
if (GetNextImageInList(image) == (Image *) NULL)
{
- if (profiles != (LinkedListInfo *) NULL)
- profiles=DestroyLinkedList(profiles,DestroyGIFProfile);
- image=DestroyImageList(image);
- global_colormap=(unsigned char *) RelinquishMagickMemory(
- global_colormap);
- return((Image *) NULL);
+ status=MagickFalse;
+ break;
}
image=SyncNextImageInList(image);
}
if ((image->columns == 0) || (image->rows == 0))
ThrowReaderException(CorruptImageError,"NegativeOrZeroImageSize");
(void) CloseBlob(image);
+ if (status == MagickFalse)
+ return(DestroyImageList(image));
return(GetFirstImageInList(image));
}
\f
if (status == MagickFalse)
break;
if (GetNextImageInList(image) == (Image *) NULL)
- break;
+ {
+ status=MagickFalse;
+ break;
+ }
image=SyncNextImageInList(image);
status=SetImageProgress(image,SaveImagesTag,scene,
GetImageListLength(image));
AppendImageFormat("map",filename);
GetPathComponent(filename,BasePath,basename);
(void) CopyMagickString(mapname,basename,MagickPathExtent);
- (void) CopyMagickString(image->filename,image_info->filename,MagickPathExtent);
+ (void) CopyMagickString(image->filename,image_info->filename,
+ MagickPathExtent);
(void) CopyMagickString(filename,image->filename,MagickPathExtent);
write_info=CloneImageInfo(image_info);
*write_info->magick='\0';
AcquireNextImage(image_info,image,exception);
if (GetNextImageInList(image) == (Image *) NULL)
{
- image=DestroyImageList(image);
- return((Image *) NULL);
+ status=MagickFalse;
+ break;
}
image=SyncNextImageInList(image);
status=SetImageProgress(image,LoadImagesTag,TellBlob(image),
}
}
(void) CloseBlob(image);
+ if (status == MagickFalse)
+ return(DestroyImageList(image));
return(GetFirstImageInList(image));
}
\f
image->filename);
break;
}
- if(t_count < ipl_info.z * ipl_info.time){
+ if (t_count < ipl_info.z * ipl_info.time)
+ {
/*
Proceed to next image.
*/
AcquireNextImage(image_info,image,exception);
if (GetNextImageInList(image) == (Image *) NULL)
- {
- image=DestroyImageList(image);
- return((Image *) NULL);
- }
+ {
+ status=MagickFalse;
+ break;
+ }
image=SyncNextImageInList(image);
status=SetImageProgress(image,LoadImagesTag,TellBlob(image),
GetBlobSize(image));
}
} while (t_count < ipl_info.z*ipl_info.time);
CloseBlob(image);
+ if (status == MagickFalse)
+ return(DestroyImageList(image));
return(GetFirstImageInList(image));
}
\f
skip_reading_current:
AcquireNextImage(image_info,image,exception);
if (GetNextImageInList(image) == (Image *) NULL)
- return(DestroyImageList(image));
+ {
+ status=MagickFalse;
+ break;
+ }
image=SyncNextImageInList(image);
status=SetImageProgress(image,LoadImagesTag,TellBlob(image),
GetBlobSize(image));
break;
}
(void) CloseBlob(image);
+ if (status == MagickFalse)
+ return(DestroyImageList(image));
return(GetFirstImageInList(image));
}
\f
AcquireNextImage(image_info,image,exception);
if (GetNextImageInList(image) == (Image *) NULL)
{
- image=DestroyImageList(image);
- return((Image *) NULL);
+ status=MagickFalse;
+ break;
}
image=SyncNextImageInList(image);
status=SetImageProgress(image,LoadImagesTag,TellBlob(image),
}
} while (c != EOF);
(void) CloseBlob(image);
+ if (status == MagickFalse)
+ return(DestroyImageList(image));
return(GetFirstImageInList(image));
}
\f
}
} while (c != EOF);
(void) CloseBlob(image);
+ if (status == MagickFalse)
+ return(DestroyImageList(image));
return(GetFirstImageInList(image));
}
\f
AcquireNextImage(image_info,image,exception);
if (GetNextImageInList(image) == (Image *) NULL)
{
- image=DestroyImageList(image);
- return((Image *) NULL);
+ status=MagickFalse;
+ break;
}
image=SyncNextImageInList(image);
status=SetImageProgress(image,LoadImagesTag,TellBlob(image),
}
} while (count > 0);
(void) CloseBlob(image);
+ if (status == MagickFalse)
+ return(DestroyImageList(image));
return(GetFirstImageInList(image));
}
\f
AcquireNextImage(image_info,image,exception);
if (GetNextImageInList(image) == (Image *) NULL)
{
- (void) DestroyImageList(image);
- return((Image *) NULL);
+ status=MagickFalse;
+ break;
}
image=SyncNextImageInList(image);
status=SetImageProgress(image,LoadImagesTag,TellBlob(image),
}
} while (nextDepthOffset != 0);
(void) CloseBlob(image);
+ if (status == MagickFalse)
+ return(DestroyImageList(image));
return(GetFirstImageInList(image));
}
\f
AcquireNextImage(image_info,image,exception);
if (GetNextImageInList(image) == (Image *) NULL)
{
- image=DestroyImageList(image);
- return((Image *) NULL);
+ status=MagickFalse;
+ break;
}
image=SyncNextImageInList(image);
}
chroma2=(unsigned char *) RelinquishMagickMemory(chroma2);
chroma1=(unsigned char *) RelinquishMagickMemory(chroma1);
luma=(unsigned char *) RelinquishMagickMemory(luma);
- image=GetFirstImageInList(image);
- return(OverviewImage(image_info,image,exception));
+ if (status == MagickFalse)
+ return(DestroyImageList(image));
+ return(OverviewImage(image_info,GetFirstImageInList(image),exception));
}
/*
Read interleaved image.
AcquireNextImage(image_info,image,exception);
if (GetNextImageInList(image) == (Image *) NULL)
{
- image=DestroyImageList(image);
- return((Image *) NULL);
+ status=MagickFalse;
+ break;
}
image=SyncNextImageInList(image);
status=SetImageProgress(image,LoadImagesTag,TellBlob(image),
if (page_table != (MagickOffsetType *) NULL)
page_table=(MagickOffsetType *) RelinquishMagickMemory(page_table);
(void) CloseBlob(image);
+ if (status == MagickFalse)
+ return(DestroyImageList(image));
return(GetFirstImageInList(image));
}
\f
AcquireNextImage(image_info,image,exception);
if (GetNextImageInList(image) == (Image *) NULL)
{
- image=DestroyImageList(image);
- return((Image *) NULL);
+ status=MagickFalse;
+ break;
}
image=SyncNextImageInList(image);
status=SetImageProgress(image,LoadImagesTag,TellBlob(image),
}
} while (status != MagickFalse);
(void) CloseBlob(image);
+ if (status == MagickFalse)
+ return(DestroyImageList(image));
return(GetFirstImageInList(image));
}
\f
AcquireNextImage(image_info,image,exception);
if (GetNextImageInList(image) == (Image *) NULL)
{
- image=DestroyImageList(image);
- return((Image *) NULL);
+ status=MagickFalse;
+ break;
}
image=SyncNextImageInList(image);
status=SetImageProgress(image,LoadImagesTag,TellBlob(image),
}
} while ((count == 1) && (format == 'P'));
(void) CloseBlob(image);
+ if (status == MagickFalse)
+ return(DestroyImageList(image));
return(GetFirstImageInList(image));
}
\f
AcquireNextImage(image_info,image,exception);
if (GetNextImageInList(image) == (Image *) NULL)
{
- image=DestroyImageList(image);
- return((Image *) NULL);
+ status=MagickFalse;
+ break;
}
image=SyncNextImageInList(image);
status=SetImageProgress(image,LoadImagesTag,TellBlob(image),
canvas_image=DestroyImage(canvas_image);
(void) CloseBlob(image);
if (status == MagickFalse)
- return(DestroyImageList(image));
+ return(DestroyImageList(image));
return(GetFirstImageInList(image));
}
\f
AcquireNextImage(image_info,image,exception);
if (GetNextImageInList(image) == (Image *) NULL)
{
- image=DestroyImageList(image);
- return((Image *) NULL);
+ status=MagickFalse;
+ break;
}
image=SyncNextImageInList(image);
status=SetImageProgress(image,LoadImagesTag,TellBlob(image),
}
} while ((count != 0) && (memcmp(magick,"\122\314",2) == 0));
(void) CloseBlob(image);
+ if (status == MagickFalse)
+ return(DestroyImageList(image));
return(GetFirstImageInList(image));
}
\f
AcquireNextImage(image_info,image,exception);
if (GetNextImageInList(image) == (Image *) NULL)
{
- image=DestroyImageList(image);
- return((Image *) NULL);
+ status=MagickFalse;
+ break;
}
image=SyncNextImageInList(image);
status=SetImageProgress(image,LoadImagesTag,TellBlob(image),
}
} while (iris_info.magic == 0x01DA);
(void) CloseBlob(image);
+ if (status == MagickFalse)
+ return(DestroyImageList(image));
return(GetFirstImageInList(image));
}
\f
AcquireNextImage(image_info,image,exception);
if (GetNextImageInList(image) == (Image *) NULL)
{
- image=DestroyImageList(image);
- return((Image *) NULL);
+ status=MagickFalse;
+ break;
}
image=SyncNextImageInList(image);
status=SetImageProgress(image,LoadImagesTag,TellBlob(image),
}
} while (sun_info.magic == 0x59a66a95);
(void) CloseBlob(image);
+ if (status == MagickFalse)
+ return(DestroyImageList(image));
return(GetFirstImageInList(image));
}
\f
tiff_status;
MagickBooleanType
+ more_frames,
status;
MagickSizeType
}
}
}
+ more_frames=MagickTrue;
do
{
DisableMSCWarning(4127)
if (image_info->number_scenes != 0)
if (image->scene >= (image_info->scene+image_info->number_scenes-1))
break;
- status=TIFFReadDirectory(tiff) != 0 ? MagickTrue : MagickFalse;
- if (status != MagickFalse)
+ more_frames=TIFFReadDirectory(tiff) != 0 ? MagickTrue : MagickFalse;
+ if (more_frames != MagickFalse)
{
/*
Allocate next image structure.
AcquireNextImage(image_info,image,exception);
if (GetNextImageInList(image) == (Image *) NULL)
{
- image=DestroyImageList(image);
- return((Image *) NULL);
+ status=MagickFalse;
+ break;
}
image=SyncNextImageInList(image);
status=SetImageProgress(image,LoadImagesTag,image->scene-1,
if (status == MagickFalse)
break;
}
- } while (status != MagickFalse);
+ } while ((status != MagickFalse) && (more_frames != MagickFalse));
TIFFClose(tiff);
TIFFReadPhotoshopLayers(image,image_info,exception);
- if (image_info->number_scenes != 0)
- {
- if (image_info->scene >= GetImageListLength(image))
- {
- /* Subimage was not found in the Photoshop layer */
- image=DestroyImageList(image);
- return((Image *)NULL);
- }
- }
+ if ((image_info->number_scenes != 0) &&
+ (image_info->scene >= GetImageListLength(image)))
+ status=MagickFalse;
+ if (status == MagickFalse)
+ return(DestroyImageList(image));
return(GetFirstImageInList(image));
}
#endif
AcquireNextImage(image_info,image,exception);
if (GetNextImageInList(image) == (Image *) NULL)
{
- image=DestroyImageList(image);
- return((Image *) NULL);
+ status=MagickFalse;
+ break;
}
image=SyncNextImageInList(image);
status=SetImageProgress(image,LoadImagesTag,TellBlob(image),
}
} while (tim_info.id == 0x00000010);
(void) CloseBlob(image);
+ if (status == MagickFalse)
+ return(DestroyImageList(image));
return(GetFirstImageInList(image));
}
\f
AcquireNextImage(image_info,image,exception);
if (GetNextImageInList(image) == (Image *) NULL)
{
- image=DestroyImageList(image);
- return((Image *) NULL);
+ status=MagickFalse;
+ break;
}
image=SyncNextImageInList(image);
status=SetImageProgress(image,LoadImagesTag,TellBlob(image),
}
} while (LocaleNCompare((char *) text,MagickID,strlen(MagickID)) == 0);
(void) CloseBlob(image);
+ if (status == MagickFalse)
+ return(DestroyImageList(image));
return(GetFirstImageInList(image));
}
\f
}
} while ((count != 0) && (viff_info.identifier == 0xab));
(void) CloseBlob(image);
+ if (status == MagickFalse)
+ return(DestroyImageList(image));
return(GetFirstImageInList(image));
}
\f
AcquireNextImage(image_info,image,exception);
if (GetNextImageInList(image) == (Image *) NULL)
{
- scanline=(unsigned char *) RelinquishMagickMemory(scanline);
- image=DestroyImageList(image);
- return((Image *) NULL);
+ status=MagickFalse;
+ break;
}
image=SyncNextImageInList(image);
status=SetImageProgress(image,LoadImagesTag,TellBlob(image),