GraphicsMagick: 2 new changesets

GraphicsMagick Commits <[email protected]> Tue, 23 Jan 2024 17:14:34 -0600
Newsgroups gmane.comp.video.graphicsmagick.cvs
Message-ID <mailman.967.1706051687.1744.graphicsmagick-commit@lists.sourceforge.net>
changeset 510836561b76 in /hg/GraphicsMagick
details: http://hg.GraphicsMagick.org/hg/GraphicsMagick?cmd=changeset;node=510836561b76
summary: coders/tiff.c: Copy uint32_t and uint8_t EXIF arrays into a tiff.

changeset de9870dea545 in /hg/GraphicsMagick
details: http://hg.GraphicsMagick.org/hg/GraphicsMagick?cmd=changeset;node=de9870dea545
summary: Merge heads

diffstat:

 ChangeLog                              |   9 ++++-
 VisualMagick/installer/inc/version.isx |   4 +-
 coders/tiff.c                          |  63 +++++++++++++++++++++++++++++----
 magick/version.h                       |   4 +-
 www/Changelog.html                     |  10 +++++
 www/Hg.html                            |   6 +-
 www/Hg.rst                             |   6 +-
 7 files changed, 83 insertions(+), 19 deletions(-)

diffs (217 lines):

diff -r 60db14ad87f1 -r de9870dea545 ChangeLog
--- a/ChangeLog	Tue Jan 23 23:25:33 2024 +0100
+++ b/ChangeLog	Wed Jan 24 00:14:14 2024 +0100
@@ -1,6 +1,13 @@
+2024-01-24  Fojtik Jaroslav  <[email protected]>
+
+	coders/tiff.c: Copy uint32_t and uint8_t EXIF arrays into a tiff.
+
+2024-01-23  Bob Friesenhahn  <[email protected]>
+
+	* www/Hg.rst: Change from defunct OSDN to Heptpod.
 2024-01-23  Fojtik Jaroslav  <[email protected]>
 
-	coders/tiff.c: Copy uint16_t EXIF arrays.
+	coders/tiff.c: Copy uint16_t EXIF arrays into a tiff.
 
 2024-01-20  Fojtik Jaroslav  <[email protected]>
 
diff -r 60db14ad87f1 -r de9870dea545 VisualMagick/installer/inc/version.isx
--- a/VisualMagick/installer/inc/version.isx	Tue Jan 23 23:25:33 2024 +0100
+++ b/VisualMagick/installer/inc/version.isx	Wed Jan 24 00:14:14 2024 +0100
@@ -10,5 +10,5 @@
 
 #define public MagickPackageName "GraphicsMagick"
 #define public MagickPackageVersion "1.4"
-#define public MagickPackageVersionAddendum ".020240120"
-#define public MagickPackageReleaseDate "snapshot-20240120"
+#define public MagickPackageVersionAddendum ".020240123"
+#define public MagickPackageReleaseDate "snapshot-20240123"
diff -r 60db14ad87f1 -r de9870dea545 coders/tiff.c
--- a/coders/tiff.c	Tue Jan 23 23:25:33 2024 +0100
+++ b/coders/tiff.c	Wed Jan 24 00:14:14 2024 +0100
@@ -4550,28 +4550,72 @@
                                break;					/* Fixed size arrays not handled. */
                            if(Value+2*Long2>=profile_length-1) break;
                            if(Long2==0) break;
-                           Array = (uint16_t *)malloc(2*Long2);
+                           Array = MagickAllocateResourceLimitedMemory(uint16_t *, 2*Long2);
                            if(Array==NULL) break;
-                           for(i=0; i<Long2;i++)
+                           for(i=0; i<Long2; i++)
                                Array[i] = LD_UINT16(profile_data+Value+2*i);
                            if(WriteCount==TIFF_VARIABLE)
                            {
-                             if(TIFFSetField(tiff, Tag, (int)Long2, Array))	/* Argument 3 type int. */
+                             if(TIFFSetField(tiff, Tag, (int)Long2, Array))	/* Argument 3 type int, argument 4 uint16_t*. */
                                FieldCount++;
                            } else if(WriteCount==TIFF_VARIABLE2)
                            {
-                             if(TIFFSetField(tiff, Tag, Long2, Array))		 /* Argument 3 type uint32_t. */
+                             if(TIFFSetField(tiff, Tag, Long2, Array))		/* Argument 3 type uint32_t, argument 4 uint16_t*.. */
                                FieldCount++;
                            }
-                           free(Array);
+                           MagickFreeResourceLimitedMemory(Array);
+                           break;
+                         }
+                         goto Scalar;
+
+            case TIFF_LONG:
+                         if(WriteCount!=1)
+                         {
+                           uint32_t *Array;
+                           uint32_t i;
+                           if(FDT!=Field) break;			/* Incompatible array type, might be converted in future. */
+                           if(WriteCount!=TIFF_VARIABLE && WriteCount!=TIFF_VARIABLE2)
+                               break;					/* Fixed size arrays not handled. */
+                           if(Value+4*Long2>=profile_length-1) break;
+                           if(Long2==0) break;
+                           Array = MagickAllocateResourceLimitedMemory(uint32_t *, 4*Long2);
+                           if(Array==NULL) break;
+                           for(i=0; i<Long2; i++)
+                               Array[i] = LD_UINT32(profile_data+Value+4*i);
+                           if(WriteCount==TIFF_VARIABLE)
+                           {
+                             if(TIFFSetField(tiff, Tag, (int)Long2, Array))	/* Argument 3 type int, argument 4 uint32_t*. */
+                               FieldCount++;
+                           } else if(WriteCount==TIFF_VARIABLE2)
+                           {
+                             if(TIFFSetField(tiff, Tag, Long2, Array))		 /* Argument 3 type uint32_t, argument 4 uint32_t*. */
+                               FieldCount++;
+                           }
+                           MagickFreeResourceLimitedMemory(Array);
                            break;
                          }
                          goto Scalar;
 
             case TIFF_BYTE:
-            case TIFF_LONG:
                          if(WriteCount!=1)
-                             break;
+                         {
+                           if(FDT!=Field) break;			/* Incompatible array type, might be converted in future. */
+                           if(WriteCount!=TIFF_VARIABLE && WriteCount!=TIFF_VARIABLE2)
+                               break;					/* Fixed size arrays not handled. */
+                           if(Value+Long2>=profile_length-1) break;
+                               /* No need to convert endianity for BYTES. */
+                           if(WriteCount==TIFF_VARIABLE)
+                           {
+                             if(TIFFSetField(tiff, Tag, (int)Long2, profile_data+Value)) /* Argument 3 type int, argument 4 uint8_t*. */
+                               FieldCount++;
+                           } else if(WriteCount==TIFF_VARIABLE2)
+                           {
+                             if(TIFFSetField(tiff, Tag, Long2, profile_data+Value))	/* Argument 3 type uint32_t, argument 4 uint8_t*. */
+                               FieldCount++;
+                           }
+                           break;
+                         }
+
 Scalar:                  if(FDT==TIFF_SHORT)
                          {
                            if(TIFFSetField(tiff, Tag, (unsigned)Value & 0xFFFF))
@@ -4582,11 +4626,14 @@
                          if(TIFFSetField(tiff, Tag, Value))
                              FieldCount++;
                          break;
+
 /*            case TIFF_SRATIONAL:
                          break; */
             case TIFF_RATIONAL:
                          if(WriteCount!=1)
-                             break;
+                         {
+                           break;
+                         }
 
                          if(FDT==TIFF_RATIONAL)
                          {
diff -r 60db14ad87f1 -r de9870dea545 magick/version.h
--- a/magick/version.h	Tue Jan 23 23:25:33 2024 +0100
+++ b/magick/version.h	Wed Jan 24 00:14:14 2024 +0100
@@ -38,8 +38,8 @@
 #define MagickLibVersion  0x272404
 #define MagickLibVersionText  "1.4"
 #define MagickLibVersionNumber 27,24,4
-#define MagickChangeDate   "20240120"
-#define MagickReleaseDate  "snapshot-20240120"
+#define MagickChangeDate   "20240123"
+#define MagickReleaseDate  "snapshot-20240123"
 
 /*
   The MagickLibInterfaceNewest and MagickLibInterfaceOldest defines
diff -r 60db14ad87f1 -r de9870dea545 www/Changelog.html
--- a/www/Changelog.html	Tue Jan 23 23:25:33 2024 +0100
+++ b/www/Changelog.html	Wed Jan 24 00:14:14 2024 +0100
@@ -37,6 +37,16 @@
 </div>
 
 <div class="document">
+<p>2024-01-23  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>www/Hg.rst: Change from defunct OSDN to Heptpod.</p></li>
+</ul>
+</blockquote>
+<p>2024-01-23  Fojtik Jaroslav  &lt;<a class="reference external" href="mailto:JaFojtik&#37;&#52;&#48;yandex&#46;com">JaFojtik<span>&#64;</span>yandex<span>&#46;</span>com</a>&gt;</p>
+<blockquote>
+<p>coders/tiff.c: Copy uint16_t EXIF arrays.</p>
+</blockquote>
 <p>2024-01-20  Fojtik Jaroslav  &lt;<a class="reference external" href="mailto:JaFojtik&#37;&#52;&#48;yandex&#46;com">JaFojtik<span>&#64;</span>yandex<span>&#46;</span>com</a>&gt;</p>
 <blockquote>
 <p>coders/tiff.c: Do not copy TIFFTAG_XRESOLUTION &amp; TIFFTAG_YRESOLUTION
diff -r 60db14ad87f1 -r de9870dea545 www/Hg.html
--- a/www/Hg.html	Tue Jan 23 23:25:33 2024 +0100
+++ b/www/Hg.html	Wed Jan 24 00:14:14 2024 +0100
@@ -181,7 +181,7 @@
 <blockquote>
 <p>The stable repository is available via http at
 &quot;<a class="reference external" href="http://hg.code.sf.net/p/graphicsmagick/code">http://hg.code.sf.net/p/graphicsmagick/code</a>&quot; or
-&quot;<a class="reference external" href="https://hg.osdn.net/view/graphicsmagick/GM">https://hg.osdn.net/view/graphicsmagick/GM</a>&quot;.  Any changes in the
+&quot;<a class="reference external" href="https://foss.heptapod.net/graphicsmagick/graphicsmagick">https://foss.heptapod.net/graphicsmagick/graphicsmagick</a>&quot;.  Any changes in the
 unstable development repository are pushed to the stable
 repositories (by the developer responsible for this role) once any
 necessary adjustments have been made, documentation files have been
@@ -191,12 +191,12 @@
 <p>To build your local development repository (as quickly as possible),
 you may use these steps:</p>
 <ol class="arabic">
-<li><p>Clone the stable repository at SourceForge or OSDN:</p>
+<li><p>Clone the stable repository at SourceForge or Heptapod:</p>
 <pre class="literal-block">hg clone http://hg.code.sf.net/p/graphicsmagick/code GM
 
 or
 
-hg clone https://hg.osdn.net/view/graphicsmagick/GM GM</pre>
+hg clone https://foss.heptapod.net/graphicsmagick/graphicsmagick GM</pre>
 </li>
 <li><p>Adjust your local repository path default to use the unstable repository.</p>
 <p>Edit .hg/hgrc in your local repository so that it contains:</p>
diff -r 60db14ad87f1 -r de9870dea545 www/Hg.rst
--- a/www/Hg.rst	Tue Jan 23 23:25:33 2024 +0100
+++ b/www/Hg.rst	Wed Jan 24 00:14:14 2024 +0100
@@ -176,7 +176,7 @@
 
   The stable repository is available via http at
   "http://hg.code.sf.net/p/graphicsmagick/code" or
-  "https://hg.osdn.net/view/graphicsmagick/GM".  Any changes in the
+  "https://foss.heptapod.net/graphicsmagick/graphicsmagick".  Any changes in the
   unstable development repository are pushed to the stable
   repositories (by the developer responsible for this role) once any
   necessary adjustments have been made, documentation files have been
@@ -186,13 +186,13 @@
 To build your local development repository (as quickly as possible),
 you may use these steps:
 
-1. Clone the stable repository at SourceForge or OSDN::
+1. Clone the stable repository at SourceForge or Heptapod::
 
      hg clone http://hg.code.sf.net/p/graphicsmagick/code GM
 
      or
 
-     hg clone https://hg.osdn.net/view/graphicsmagick/GM GM
+     hg clone https://foss.heptapod.net/graphicsmagick/graphicsmagick GM
 
 2. Adjust your local repository path default to use the unstable repository.