GraphicsMagick: ReadJPEGImage(): Store embedded profiles in imag...

GraphicsMagick Commits <[email protected]>
Newsgroups gmane.comp.video.graphicsmagick.cvs
Message-ID <mailman.33046.1645889808.1623.graphicsmagick-commit@lists.sourceforge.net>
changeset 90e1c92a709c in /hg/GraphicsMagick
details: http://hg.GraphicsMagick.org/hg/GraphicsMagick?cmd=changeset;node=90e1c92a709c
summary: ReadJPEGImage(): Store embedded profiles in image, even if in 'ping' mode.

diffstat:

 ChangeLog          |   5 +++++
 coders/jpeg.c      |  32 ++++++++++++++++----------------
 www/Changelog.html |   9 +++++++--
 3 files changed, 28 insertions(+), 18 deletions(-)

diffs (83 lines):

diff -r e05b8a44b227 -r 90e1c92a709c ChangeLog
--- a/ChangeLog	Sat Feb 26 08:47:09 2022 -0600
+++ b/ChangeLog	Sat Feb 26 09:36:35 2022 -0600
@@ -1,5 +1,10 @@
 2022-02-26  Bob Friesenhahn  <[email protected]>
 
+        * coders/jpeg.c (ReadJPEGImage): Store embedded profiles in image,
+        even if in 'ping' mode.  This addresses a problem discovered when
+        interfacing with minimagick (Debian bug #1006374 "graphicsmagick
+        breaks ruby-mini-magick").
+
         * coders/url.c (ReadURLImage): Deal with libxml2 not offering HTTP
         or FTP capabilities.  It seems that support for FTP has now been
         removed by default.
diff -r e05b8a44b227 -r 90e1c92a709c coders/jpeg.c
--- a/coders/jpeg.c	Sat Feb 26 08:47:09 2022 -0600
+++ b/coders/jpeg.c	Sat Feb 26 09:36:35 2022 -0600
@@ -1601,6 +1601,22 @@
         jpeg_destroy_decompress(&jpeg_info);
         ThrowJPEGReaderException(ResourceLimitError,MemoryAllocationFailed,image);
       }
+
+  /*
+    Store profiles in image.
+  */
+  for (i=0 ; i < ArraySize(client_data->profiles); i++)
+    {
+      ProfileInfo *profile=&client_data->profiles[i];
+      if (!profile->name)
+        continue;
+      if (!profile->length)
+        continue;
+      if (!profile->info)
+        continue;
+      (void) SetImageProfile(image,profile->name,profile->info,profile->length);
+    }
+
   if (image_info->ping)
     {
       jpeg_destroy_decompress(&jpeg_info);
@@ -1842,22 +1858,6 @@
     }
   jpeg_destroy_decompress(&jpeg_info);
   MagickFreeResourceLimitedMemory(jpeg_pixels);
-
-  /*
-    Store profiles in image.
-  */
-  for (i=0 ; i < ArraySize(client_data->profiles); i++)
-    {
-      ProfileInfo *profile=&client_data->profiles[i];
-      if (!profile->name)
-        continue;
-      if (!profile->length)
-        continue;
-      if (!profile->info)
-        continue;
-      (void) SetImageProfile(image,profile->name,profile->info,profile->length);
-    }
-
   client_data=FreeMagickClientData(client_data);
   CloseBlob(image);
 
diff -r e05b8a44b227 -r 90e1c92a709c www/Changelog.html
--- a/www/Changelog.html	Sat Feb 26 08:47:09 2022 -0600
+++ b/www/Changelog.html	Sat Feb 26 09:36:35 2022 -0600
@@ -37,9 +37,14 @@
 
 <p>2022-02-26  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>
-* coders/url.c (ReadURLImage): Deal with libxml2 not offering HTTP
+<p>* coders/jpeg.c (ReadJPEGImage): Store embedded profiles in image,
+even if in 'ping' mode.  This addresses a problem discovered when
+interfacing with minimagick (Debian bug #1006374 &quot;graphicsmagick
+breaks ruby-mini-magick&quot;).</p>
+<p>* coders/url.c (ReadURLImage): Deal with libxml2 not offering HTTP
 or FTP capabilities.  It seems that support for FTP has now been
-removed by default.</blockquote>
+removed by default.</p>
+</blockquote>
 <p>2022-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>
 <p>* README.txt: Recomend using JasPer 3.0.0 (or later).</p>
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.