GraphicsMagick: ImageToBlob(): Immediately reject attempts to wr...

GraphicsMagick Commits <[email protected]>
Newsgroups gmane.comp.video.graphicsmagick.cvs
Message-ID <mailman.13541.1675866565.1384.graphicsmagick-commit@lists.sourceforge.net>
changeset 6eb67db043d5 in /hg/GraphicsMagick
details: http://hg.GraphicsMagick.org/hg/GraphicsMagick?cmd=changeset;node=6eb67db043d5
summary: ImageToBlob(): Immediately reject attempts to write blobs to formats which can not support blobs.

diffstat:

 ChangeLog                              |   5 +++++
 VisualMagick/installer/inc/version.isx |   4 ++--
 magick/blob.c                          |  28 ++++++++++++++++++++++++++--
 magick/version.h                       |   4 ++--
 www/Changelog.html                     |   7 +++++++
 5 files changed, 42 insertions(+), 6 deletions(-)

diffs (108 lines):

diff -r 63a591bee3ca -r 6eb67db043d5 ChangeLog
--- a/ChangeLog	Mon Feb 06 19:43:37 2023 -0600
+++ b/ChangeLog	Wed Feb 08 08:29:12 2023 -0600
@@ -1,3 +1,8 @@
+2023-02-08  Bob Friesenhahn  <[email protected]>
+
+	* magick/blob.c (ImageToBlob): Immediately reject attempts to
+	write blobs to formats which can not support blobs.
+
 2023-02-06  Bob Friesenhahn  <[email protected]>
 
 	* coders/mpc.c (RegisterMPCImage): Set seekable_stream and
diff -r 63a591bee3ca -r 6eb67db043d5 VisualMagick/installer/inc/version.isx
--- a/VisualMagick/installer/inc/version.isx	Mon Feb 06 19:43:37 2023 -0600
+++ b/VisualMagick/installer/inc/version.isx	Wed Feb 08 08:29:12 2023 -0600
@@ -10,5 +10,5 @@
 
 #define public MagickPackageName "GraphicsMagick"
 #define public MagickPackageVersion "1.4"
-#define public MagickPackageVersionAddendum ".020230206"
-#define public MagickPackageReleaseDate "snapshot-20230206"
+#define public MagickPackageVersionAddendum ".020230208"
+#define public MagickPackageReleaseDate "snapshot-20230208"
diff -r 63a591bee3ca -r 6eb67db043d5 magick/blob.c
--- a/magick/blob.c	Mon Feb 06 19:43:37 2023 -0600
+++ b/magick/blob.c	Wed Feb 08 08:29:12 2023 -0600
@@ -2235,8 +2235,18 @@
     *blob;
 
   unsigned int
+    i,
     status;
 
+  static const char no_blob_support[][6] =
+    {
+     "CACHE",
+     "MPC",
+     "MPR",
+     "MPRI",
+     "X"
+    };
+
   assert(image_info != (const ImageInfo *) NULL);
   assert(image_info->signature == MagickSignature);
   assert(image != (Image *) NULL);
@@ -2244,15 +2254,29 @@
   assert(exception != (ExceptionInfo *) NULL);
 
   if (image->blob->logging)
-    (void) LogMagickEvent(BlobEvent,GetMagickModule(),"Entering ImageToBlob");
+    (void) LogMagickEvent(BlobEvent,GetMagickModule(),
+                          "Entering ImageToBlob (image magick=\"%s\")",
+                          image->magick);
   /* SetExceptionInfo(exception,UndefinedException); */
+  for (i = 0; i < ArraySize(no_blob_support); i++)
+    {
+      if (LocaleCompare(image->magick,no_blob_support[i]) == 0)
+        {
+          ThrowException(exception,MissingDelegateError,
+                         NoEncodeDelegateForThisImageFormat,image->magick);
+          if (image->blob->logging)
+            (void) LogMagickEvent(BlobEvent,GetMagickModule(),
+                                  "Exiting ImageToBlob");
+          return((void *) NULL);
+        }
+    }
   clone_info=CloneImageInfo(image_info);
   (void) strlcpy(clone_info->magick,image->magick,MaxTextExtent);
   magick_info=GetMagickInfo(clone_info->magick,exception);
   if (magick_info == (const MagickInfo *) NULL)
     {
       ThrowException(exception,MissingDelegateError,
-                     NoDecodeDelegateForThisImageFormat,clone_info->magick);
+                     NoEncodeDelegateForThisImageFormat,clone_info->magick);
       DestroyImageInfo(clone_info);
       if (image->blob->logging)
         (void) LogMagickEvent(BlobEvent,GetMagickModule(),
diff -r 63a591bee3ca -r 6eb67db043d5 magick/version.h
--- a/magick/version.h	Mon Feb 06 19:43:37 2023 -0600
+++ b/magick/version.h	Wed Feb 08 08:29:12 2023 -0600
@@ -38,8 +38,8 @@
 #define MagickLibVersion  0x272402
 #define MagickLibVersionText  "1.4"
 #define MagickLibVersionNumber 27,24,2
-#define MagickChangeDate   "20230206"
-#define MagickReleaseDate  "snapshot-20230206"
+#define MagickChangeDate   "20230208"
+#define MagickReleaseDate  "snapshot-20230208"
 
 /*
   The MagickLibInterfaceNewest and MagickLibInterfaceOldest defines
diff -r 63a591bee3ca -r 6eb67db043d5 www/Changelog.html
--- a/www/Changelog.html	Mon Feb 06 19:43:37 2023 -0600
+++ b/www/Changelog.html	Wed Feb 08 08:29:12 2023 -0600
@@ -37,6 +37,13 @@
 </div>
 
 <div class="document">
+<p>2023-02-08  Bob Friesenhahn  &lt;<a class="reference external" href="mailto:bfriesen&#37;&#52;&#48;simple&#46;dallas&#46;tx&#46;us">bfriesen<span>&#64;</span>simple<span>&#46;</span>dallas<span>&#46;</span>tx<span>&#46;</span>us</a>&gt;</p>
+<blockquote>
+<ul class="simple">
+<li><p>magick/blob.c (ImageToBlob): Immediately reject attempts to
+write blobs to formats which can not support blobs.</p></li>
+</ul>
+</blockquote>
 <p>2023-02-06  Bob Friesenhahn  &lt;<a class="reference external" href="mailto:bfriesen&#37;&#52;&#48;simple&#46;dallas&#46;tx&#46;us">bfriesen<span>&#64;</span>simple<span>&#46;</span>dallas<span>&#46;</span>tx<span>&#46;</span>us</a>&gt;</p>
 <blockquote>
 <ul class="simple">
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.