X-Git-Url: https://granicus.if.org/sourcecode?a=blobdiff_plain;f=coders%2Finline.c;h=b9d3c765b08f0b05198ceed9164688641e3fa11d;hb=b56bb24a985ca4366713bcd8ffdfacbb48a98a2f;hp=f40d4f62d85c38d04753e7fbdb6e3889d3002f43;hpb=7e41fe84a841d7b9d7b36b245b65e9dcb3314943;p=imagemagick diff --git a/coders/inline.c b/coders/inline.c index f40d4f62d..b9d3c765b 100644 --- a/coders/inline.c +++ b/coders/inline.c @@ -13,11 +13,11 @@ % Read Inline Images % % % % Software Design % -% John Cristy % +% Cristy % % July 1992 % % % % % -% Copyright 1999-2011 ImageMagick Studio LLC, a non-profit organization % +% Copyright 1999-2015 ImageMagick Studio LLC, a non-profit organization % % dedicated to making software imaging solutions freely available. % % % % You may not use this file except in compliance with the License. You may % @@ -39,26 +39,27 @@ /* Include declarations. */ -#include "magick/studio.h" -#include "magick/blob.h" -#include "magick/blob-private.h" -#include "magick/client.h" -#include "magick/display.h" -#include "magick/exception.h" -#include "magick/exception-private.h" -#include "magick/image.h" -#include "magick/image-private.h" -#include "magick/list.h" -#include "magick/magick.h" -#include "magick/memory_.h" -#include "magick/option.h" -#include "magick/quantum-private.h" -#include "magick/static.h" -#include "magick/string_.h" -#include "magick/module.h" -#include "magick/utility.h" -#include "magick/xwindow.h" -#include "magick/xwindow-private.h" +#include "MagickCore/studio.h" +#include "MagickCore/blob.h" +#include "MagickCore/blob-private.h" +#include "MagickCore/client.h" +#include "MagickCore/constitute.h" +#include "MagickCore/display.h" +#include "MagickCore/exception.h" +#include "MagickCore/exception-private.h" +#include "MagickCore/image.h" +#include "MagickCore/image-private.h" +#include "MagickCore/list.h" +#include "MagickCore/magick.h" +#include "MagickCore/memory_.h" +#include "MagickCore/option.h" +#include "MagickCore/quantum-private.h" +#include "MagickCore/static.h" +#include "MagickCore/string_.h" +#include "MagickCore/module.h" +#include "MagickCore/utility.h" +#include "MagickCore/xwindow.h" +#include "MagickCore/xwindow-private.h" /* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -105,12 +106,12 @@ static Image *ReadINLINEImage(const ImageInfo *image_info, register size_t i; - ssize_t - count; - size_t quantum; + ssize_t + count; + unsigned char *inline_image; @@ -126,7 +127,7 @@ static Image *ReadINLINEImage(const ImageInfo *image_info, assert(exception->signature == MagickSignature); if (LocaleNCompare(image_info->filename,"data:",5) == 0) return(ReadInlineImage(image_info,image_info->filename,exception)); - image=AcquireImage(image_info); + image=AcquireImage(image_info,exception); status=OpenBlob(image_info,image,ReadBinaryBlobMode,exception); if (status == MagickFalse) { @@ -134,8 +135,11 @@ static Image *ReadINLINEImage(const ImageInfo *image_info, return((Image *) NULL); } quantum=MagickMin((size_t) GetBlobSize(image),MagickMaxBufferExtent); + if (quantum == 0) + quantum=MagickMaxBufferExtent; inline_image=(unsigned char *) AcquireQuantumMemory(quantum, sizeof(*inline_image)); + count=0; for (i=0; inline_image != (unsigned char *) NULL; i+=count) { count=(ssize_t) ReadBlob(image,quantum,inline_image+i); @@ -145,7 +149,7 @@ static Image *ReadINLINEImage(const ImageInfo *image_info, if (errno != EINTR) break; } - if (~(1UL*i) < (quantum+1)) + if (~((size_t) i) < (quantum+1)) { inline_image=(unsigned char *) RelinquishMagickMemory(inline_image); break;