GraphicsMagick: ReadWEBPImage(): Don't prepend Exif APP1 header ...

GraphicsMagick Commits <[email protected]>
Newsgroups gmane.comp.video.graphicsmagick.cvs
Message-ID <mailman.8904.1687284677.17398.graphicsmagick-commit@lists.sourceforge.net>
changeset ee4446b4fa94 in /hg/GraphicsMagick
details: http://hg.GraphicsMagick.org/hg/GraphicsMagick?cmd=changeset;node=ee4446b4fa94
summary: ReadWEBPImage(): Don't prepend Exif APP1 header indiscriminately for WebP

diffstat:

 ChangeLog                              |   6 ++++++
 VisualMagick/installer/inc/version.isx |   4 ++--
 coders/webp.c                          |  17 +++++++++++------
 magick/version.h                       |   4 ++--
 www/Changelog.html                     |   8 ++++++++
 5 files changed, 29 insertions(+), 10 deletions(-)

diffs (85 lines):

diff -r 1145694abfc7 -r ee4446b4fa94 ChangeLog
--- a/ChangeLog	Sun Jun 18 16:53:36 2023 -0500
+++ b/ChangeLog	Tue Jun 20 13:11:06 2023 -0500
@@ -1,3 +1,9 @@
+2023-06-20  Bob Friesenhahn  <[email protected]>
+
+	* coders/webp.c (ReadWEBPImage): SourceForge patch #77 "Don't
+	prepend Exif APP1 header indiscriminately for WebP" by Milos
+	Komarcevic.
+
 2023-06-18  Bob Friesenhahn  <[email protected]>
 
 	* coders/heif.c (ReadMetadata): Retrieve image orientation from
diff -r 1145694abfc7 -r ee4446b4fa94 VisualMagick/installer/inc/version.isx
--- a/VisualMagick/installer/inc/version.isx	Sun Jun 18 16:53:36 2023 -0500
+++ b/VisualMagick/installer/inc/version.isx	Tue Jun 20 13:11:06 2023 -0500
@@ -10,5 +10,5 @@
 
 #define public MagickPackageName "GraphicsMagick"
 #define public MagickPackageVersion "1.4"
-#define public MagickPackageVersionAddendum ".020230618"
-#define public MagickPackageReleaseDate "snapshot-20230618"
+#define public MagickPackageVersionAddendum ".020230620"
+#define public MagickPackageReleaseDate "snapshot-20230620"
diff -r 1145694abfc7 -r ee4446b4fa94 coders/webp.c
--- a/coders/webp.c	Sun Jun 18 16:53:36 2023 -0500
+++ b/coders/webp.c	Tue Jun 20 13:11:06 2023 -0500
@@ -329,14 +329,19 @@
         (void) LogMagickEvent(CoderEvent,GetMagickModule(),"EXIF Profile: %lu bytes",
                               (unsigned long) flag_data.size);
         if ((flag_data.bytes != NULL) && (flag_data.size > 0))
-
           {
-            size_t profile_size = flag_data.size+MAGICK_JPEG_APP1_EXIF_HEADER_SIZE;
+            const int has_app1_hdr=
+              (flag_data.size >= MAGICK_JPEG_APP1_EXIF_HEADER_SIZE) &&
+              (memcmp((const void *) flag_data.bytes,
+                      (const void *) MAGICK_JPEG_APP1_EXIF_HEADER,
+                      MAGICK_JPEG_APP1_EXIF_HEADER_SIZE) == 0);
+            const size_t header_size=has_app1_hdr ? 0 : MAGICK_JPEG_APP1_EXIF_HEADER_SIZE;
+            const size_t profile_size=flag_data.size+header_size;
             unsigned char *profile=MagickAllocateResourceLimitedMemory(unsigned char *,profile_size);
-            (void) memcpy((void *) profile, (const void *) MAGICK_JPEG_APP1_EXIF_HEADER,
-                          MAGICK_JPEG_APP1_EXIF_HEADER_SIZE);
-            (void) memcpy((void *) (profile+MAGICK_JPEG_APP1_EXIF_HEADER_SIZE),flag_data.bytes,
-                          flag_data.size);
+            if (has_app1_hdr == 0)
+              (void) memcpy((void *) profile, (const void *) MAGICK_JPEG_APP1_EXIF_HEADER,
+                            MAGICK_JPEG_APP1_EXIF_HEADER_SIZE);
+            (void) memcpy((void *) (profile+header_size),flag_data.bytes,flag_data.size);
             SetImageProfile(image,"EXIF",profile,profile_size);
             MagickFreeResourceLimitedMemory(profile);
           }
diff -r 1145694abfc7 -r ee4446b4fa94 magick/version.h
--- a/magick/version.h	Sun Jun 18 16:53:36 2023 -0500
+++ b/magick/version.h	Tue Jun 20 13:11:06 2023 -0500
@@ -38,8 +38,8 @@
 #define MagickLibVersion  0x272402
 #define MagickLibVersionText  "1.4"
 #define MagickLibVersionNumber 27,24,2
-#define MagickChangeDate   "20230618"
-#define MagickReleaseDate  "snapshot-20230618"
+#define MagickChangeDate   "20230620"
+#define MagickReleaseDate  "snapshot-20230620"
 
 /*
   The MagickLibInterfaceNewest and MagickLibInterfaceOldest defines
diff -r 1145694abfc7 -r ee4446b4fa94 www/Changelog.html
--- a/www/Changelog.html	Sun Jun 18 16:53:36 2023 -0500
+++ b/www/Changelog.html	Tue Jun 20 13:11:06 2023 -0500
@@ -37,6 +37,14 @@
 </div>
 
 <div class="document">
+<p>2023-06-20  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/webp.c (ReadWEBPImage): SourceForge patch #77 &quot;Don't
+prepend Exif APP1 header indiscriminately for WebP&quot; by Milos
+Komarcevic.</p></li>
+</ul>
+</blockquote>
 <p>2023-06-18  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.