]> granicus.if.org Git - imagemagick/blobdiff - coders/inline.c
(no commit message)
[imagemagick] / coders / inline.c
index f40d4f62d85c38d04753e7fbdb6e3889d3002f43..b9d3c765b08f0b05198ceed9164688641e3fa11d 100644 (file)
 %                            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  %
 /*
   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"
 \f
 /*
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -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;