GraphicsMagick: coders/heif.c: Address oss-fuzz issue 376100386 ...

GraphicsMagick Commits <[email protected]> Tue, 29 Oct 2024 09:54:24 -0500
Newsgroups gmane.comp.video.graphicsmagick.cvs
Message-ID <mailman.30870.1730213676.8001.graphicsmagick-commit@lists.sourceforge.net>
changeset a706e21de4b0 in /hg/GraphicsMagick
details: http://hg.GraphicsMagick.org/hg/GraphicsMagick?cmd=changeset;node=a706e21de4b0
summary: coders/heif.c: Address oss-fuzz issue 376100386 "graphicsmagick:coder_AVIF_fuzzer: Undefined-shift in ReadMetadata"

diffstat:

 ChangeLog                              |   5 +++++
 VisualMagick/installer/inc/version.isx |   4 ++--
 coders/heif.c                          |  10 +++++-----
 magick/version.h                       |   4 ++--
 www/ChangeLog.html                     |  11 +++++++++++
 5 files changed, 25 insertions(+), 9 deletions(-)

diffs (85 lines):

diff -r 3e5c1aedcd18 -r a706e21de4b0 ChangeLog
--- a/ChangeLog	Tue Oct 29 08:20:21 2024 -0500
+++ b/ChangeLog	Tue Oct 29 09:54:05 2024 -0500
@@ -1,5 +1,10 @@
 2024-10-29  Bob Friesenhahn  <[email protected]>
 
+	* coders/heif.c (ReadMetadata): Address oss-fuzz issue 376100386
+	"graphicsmagick:coder_AVIF_fuzzer: Undefined-shift in
+	ReadMetadata", which is due to an unsigned char being promoted to
+	a signed int prior to shifting.  The sample input file is valid.
+
 	* TclMagick/Makefile.am (EXTRA_DIST): Assure that all source files
 	are included by 'make dist'.
 
diff -r 3e5c1aedcd18 -r a706e21de4b0 VisualMagick/installer/inc/version.isx
--- a/VisualMagick/installer/inc/version.isx	Tue Oct 29 08:20:21 2024 -0500
+++ b/VisualMagick/installer/inc/version.isx	Tue Oct 29 09:54:05 2024 -0500
@@ -10,5 +10,5 @@
 
 #define public MagickPackageName "GraphicsMagick"
 #define public MagickPackageVersion "1.4"
-#define public MagickPackageVersionAddendum ".020241028"
-#define public MagickPackageReleaseDate "snapshot-20241028"
+#define public MagickPackageVersionAddendum ".020241029"
+#define public MagickPackageReleaseDate "snapshot-20241029"
diff -r 3e5c1aedcd18 -r a706e21de4b0 coders/heif.c
--- a/coders/heif.c	Tue Oct 29 08:20:21 2024 -0500
+++ b/coders/heif.c	Tue Oct 29 09:54:05 2024 -0500
@@ -1,5 +1,5 @@
 /*
-% Copyright (C) 2023 GraphicsMagick Group
+% Copyright (C) 2023-2024 GraphicsMagick Group
 %
 % This program is covered by multiple licenses, which are described in
 % Copyright.txt. You should have received a copy of Copyright.txt with this
@@ -240,10 +240,10 @@
               magick_uint32_t offset;
 
               /* Big-endian offset decoding */
-              offset = p[exif_pad+0] << 24 |
-                       p[exif_pad+1] << 16 |
-                       p[exif_pad+2] << 8 |
-                       p[exif_pad+3];
+              offset = (magick_uint32_t) p[exif_pad+0] << 24 |
+                       (magick_uint32_t) p[exif_pad+1] << 16 |
+                       (magick_uint32_t) p[exif_pad+2] << 8 |
+                       (magick_uint32_t) p[exif_pad+3];
 
               /*
                 If the TIFF header offset is not zero, then need to
diff -r 3e5c1aedcd18 -r a706e21de4b0 magick/version.h
--- a/magick/version.h	Tue Oct 29 08:20:21 2024 -0500
+++ b/magick/version.h	Tue Oct 29 09:54:05 2024 -0500
@@ -38,8 +38,8 @@
 #define MagickLibVersion  0x282502
 #define MagickLibVersionText  "1.4"
 #define MagickLibVersionNumber 28,25,2
-#define MagickChangeDate   "20241028"
-#define MagickReleaseDate  "snapshot-20241028"
+#define MagickChangeDate   "20241029"
+#define MagickReleaseDate  "snapshot-20241029"
 
 /*
   The MagickLibInterfaceNewest and MagickLibInterfaceOldest defines
diff -r 3e5c1aedcd18 -r a706e21de4b0 www/ChangeLog.html
--- a/www/ChangeLog.html	Tue Oct 29 08:20:21 2024 -0500
+++ b/www/ChangeLog.html	Tue Oct 29 09:54:05 2024 -0500
@@ -38,6 +38,17 @@
 
 <main id="graphicsmagick-changelog">
 <h1 class="title">GraphicsMagick ChangeLog</h1>
+<p>2024-10-29  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>coders/heif.c (ReadMetadata): Address oss-fuzz issue 376100386
+&quot;graphicsmagick:coder_AVIF_fuzzer: Undefined-shift in
+ReadMetadata&quot;, which is due to an unsigned char being promoted to
+a signed int prior to shifting.  The sample input file is valid.</p></li>
+<li><p>TclMagick/Makefile.am (EXTRA_DIST): Assure that all source files
+are included by 'make dist'.</p></li>
+</ul>
+</blockquote>
 <p>2024-10-28  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">