[prev in list] [next in list] [prev in thread] [next in thread] 

List:       graphicsmagick-commit
Subject:    [GM-commit] GraphicsMagick: Fixes based on Coverity analysis.
From:       GraphicsMagick Commits <graphicsmagick-commit () lists ! sourceforge ! net>
Date:       2022-04-01 14:05:05
Message-ID: mailman.11467.1648821920.1506.graphicsmagick-commit () lists ! sourceforge ! net
[Download RAW message or body]

changeset 8c5fdda5297d in /hg/GraphicsMagick
details: http://hg.GraphicsMagick.org/hg/GraphicsMagick?cmd=changeset;node=8c5fdda5297d
                
summary: Fixes based on Coverity analysis.

diffstat:

 ChangeLog                              |  22 ++++++++++++++
 Makefile.am                            |   8 +++--
 Makefile.in                            |   8 +++--
 VisualMagick/installer/inc/version.isx |   4 +-
 coders/jp2.c                           |  25 ++++++++++++----
 magick/error.c                         |  32 ++++++++++++++++----
 magick/gradient.c                      |   8 ++++-
 magick/locale.c                        |   4 +-
 magick/magick_types.h.in               |  51 ++++++++++++++++++++-------------
 magick/render.c                        |   6 ++--
 magick/resize.c                        |   3 +-
 magick/version.h                       |   4 +-
 magick/xwindow.c                       |   9 +++++-
 www/Changelog.html                     |  18 ++++++++++++
 www/Changes.html                       |   2 +-
 www/Changes.rst                        |   2 +-
 www/links.html                         |   7 ++++
 www/links.rst                          |   3 ++
 18 files changed, 163 insertions(+), 53 deletions(-)

diffs (truncated from 525 to 500 lines):

diff -r 230c7f549ba5 -r 8c5fdda5297d ChangeLog
--- a/ChangeLog	Sat Mar 26 13:22:31 2022 -0500
+++ b/ChangeLog	Fri Apr 01 09:04:54 2022 -0500
@@ -1,3 +1,25 @@
+2022-04-01  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
+
+        * magick/error.c (ThrowLoggedException): Silence Coverity 376912
+        "Dereference after null check (FORWARD_NULL)".
+
+        * coders/jp2.c (ReadJP2Image): Silence Coverity 264883 "Division
+        or modulo by float zero (DIVIDE_BY_ZERO)".
+        (ReadJP2Image): Fix Coverity 376911 "Improper use of negative
+        value (NEGATIVE_RETURNS)".
+
+        * magick/xwindow.c (MagickXMakeMagnifyImage): Fix Coverity 376906
+        "Division or modulo by zero (DIVIDE_BY_ZERO)".
+
+        * magick/resize.c (ScaleImage): Fix Coverity 376908 "Resource leak
+        (RESOURCE_LEAK)".
+
+        * magick/locale.c (GetLocaleMessageFromTag): Fix Coverity 376907
+        "Out-of-bounds read (OVERRUN)".
+
+        * magick/render.c (DrawPrimitive): Fix Coverity 376904
+        "Out-of-bounds access (OVERRUN)".
+
 2022-03-26  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
 
         * version.sh: Prepare for 1.3.38 release.
diff -r 230c7f549ba5 -r 8c5fdda5297d Makefile.am
--- a/Makefile.am	Sat Mar 26 13:22:31 2022 -0500
+++ b/Makefile.am	Fri Apr 01 09:04:54 2022 -0500
@@ -1,4 +1,4 @@
-# Copyright (C) 2004-2021 GraphicsMagick Group
+# Copyright (C) 2004-2022 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
@@ -425,12 +425,13 @@
 COVERITY_TARBALL=GraphicsMagick.xz
 COVERITY_VERSION=snapshot-@PACKAGE_CHANGE_DATE@
 COVERITY_DESCRIPTION='Ubuntu Q@QuantumDepth@'
-# New URL is https://brb.synopsys.com/?project=GraphicsMagick
+COVERITY_COV_INT='cov-int'
+# New URL is https://scan.coverity.com/projects/graphicsmagick?tab=overview
 coverity:
 	$(MAKE) clean
 	cov-build --dir cov-int $(MAKE)
 	tar caf $(COVERITY_TARBALL) cov-int
-	curl --limit-rate 50K \
+	curl --limit-rate 34K \
 	--form token=`cat $$HOME/.coverity_key_gm` \
 	--form email=$(COVERITY_EMAIL) \
 	--form file=@$(COVERITY_TARBALL) \
@@ -438,6 +439,7 @@
 	--form description=$(COVERITY_DESCRIPTION) \
 	https://scan.coverity.com/builds?project=GraphicsMagick
 	$(RM) $(COVERITY_TARBALL)
+	$(RM) -rf $(COVERITY_COV_INT)
 
 # Rules for a profiled build (according to Paolo Bonzini <bonzini@gnu.org>)
 #.PHONY: profile
diff -r 230c7f549ba5 -r 8c5fdda5297d Makefile.in
--- a/Makefile.in	Sat Mar 26 13:22:31 2022 -0500
+++ b/Makefile.in	Fri Apr 01 09:04:54 2022 -0500
@@ -14,7 +14,7 @@
 
 @SET_MAKE@
 
-# Copyright (C) 2004-2021 GraphicsMagick Group
+# Copyright (C) 2004-2022 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
@@ -4927,6 +4927,7 @@
 COVERITY_TARBALL = GraphicsMagick.xz
 COVERITY_VERSION = snapshot-@PACKAGE_CHANGE_DATE@
 COVERITY_DESCRIPTION = 'Ubuntu Q@QuantumDepth@'
+COVERITY_COV_INT = 'cov-int'
 
 # Rules for a profiled build (according to Paolo Bonzini <bonzini@gnu.org>)
 #.PHONY: profile
@@ -11445,12 +11446,12 @@
 @HasGRAPHICSMAGICK_SNAPSHOT_COPY_FALSE@	done
 @HasGRAPHICSMAGICK_SNAPSHOT_COPY_FALSE@	cp $(top_srcdir)/ChangeLog \
$(SNAPSHOT_DIRECTORY)/ChangeLog.txt  @HasGRAPHICSMAGICK_SNAPSHOT_COPY_FALSE@	cp \
                $(top_srcdir)/www/Changelog.html $(SNAPSHOT_DIRECTORY)/ChangeLog.html
-# New URL is https://brb.synopsys.com/?project=GraphicsMagick
+# New URL is https://scan.coverity.com/projects/graphicsmagick?tab=overview
 coverity:
 	$(MAKE) clean
 	cov-build --dir cov-int $(MAKE)
 	tar caf $(COVERITY_TARBALL) cov-int
-	curl --limit-rate 50K \
+	curl --limit-rate 34K \
 	--form token=`cat $$HOME/.coverity_key_gm` \
 	--form email=$(COVERITY_EMAIL) \
 	--form file=@$(COVERITY_TARBALL) \
@@ -11458,6 +11459,7 @@
 	--form description=$(COVERITY_DESCRIPTION) \
 	https://scan.coverity.com/builds?project=GraphicsMagick
 	$(RM) $(COVERITY_TARBALL)
+	$(RM) -rf $(COVERITY_COV_INT)
 
 # Build symbols files to add 'gm' prefix to functions
 gmsymbols:
diff -r 230c7f549ba5 -r 8c5fdda5297d VisualMagick/installer/inc/version.isx
--- a/VisualMagick/installer/inc/version.isx	Sat Mar 26 13:22:31 2022 -0500
+++ b/VisualMagick/installer/inc/version.isx	Fri Apr 01 09:04:54 2022 -0500
@@ -10,5 +10,5 @@
 
 #define public MagickPackageName "GraphicsMagick"
 #define public MagickPackageVersion "1.4"
-#define public MagickPackageVersionAddendum ".020220326"
-#define public MagickPackageReleaseDate "snapshot-20220326"
+#define public MagickPackageVersionAddendum ".020220401"
+#define public MagickPackageReleaseDate "snapshot-20220401"
diff -r 230c7f549ba5 -r 8c5fdda5297d coders/jp2.c
--- a/coders/jp2.c	Sat Mar 26 13:22:31 2022 -0500
+++ b/coders/jp2.c	Fri Apr 01 09:04:54 2022 -0500
@@ -725,6 +725,10 @@
 
     /* Get current seek position (normally 0) */
     pos=TellBlob(image);
+    if (pos < 0)
+      {
+        ThrowJP2ReaderException(BlobError,UnableToObtainOffset,image);
+      }
 
     /* Read header */
     if ((magick_length=ReadBlob(image,sizeof(magick),magick)) != sizeof(magick))
@@ -1007,23 +1011,32 @@
   */
   for (component=0; component < (long) number_components; component++)
     {
-      unsigned long
+      double
+        scale_to_quantum;
+
+      unsigned int
         component_depth,
         i,
         max_value;
 
-      double
-        scale_to_quantum;
-
       component_depth=jas_image_cmptprec(jp2_image,components[component]);
-      max_value=MaxValueGivenBits(component_depth);
+      if ((0 == component_depth) || (component_depth > 16))
+        {
+          (void) LogMagickEvent(CoderEvent,GetMagickModule(),
+                                "Component %u depth is %u!",
+                                component, component_depth);
+          ThrowJP2ReaderException(CorruptImageError,ImproperImageHeader,image);
+        }
+      max_value=(unsigned int) MaxValueGivenBits(component_depth);
+      if ((0 == max_value) || (max_value > 65535))
+        ThrowJP2ReaderException(CorruptImageError,ImproperImageHeader,image);
       scale_to_quantum=MaxRGBDouble/max_value;
       (void) LogMagickEvent(CoderEvent,GetMagickModule(),
                             "Channel %d scale is %g", component, scale_to_quantum);
       channel_lut[component]=MagickAllocateResourceLimitedArray(Quantum *, (size_t) \
max_value+1,sizeof(Quantum));  if (channel_lut[component] == (Quantum *) NULL)
         ThrowJP2ReaderException(ResourceLimitError,MemoryAllocationFailed,image);
-      for(i=0; i <= max_value; i++)
+      for (i=0; i <= max_value; i++)
         (channel_lut[component])[i]=scale_to_quantum*i+0.5;
     }
 
diff -r 230c7f549ba5 -r 8c5fdda5297d magick/error.c
--- a/magick/error.c	Sat Mar 26 13:22:31 2022 -0500
+++ b/magick/error.c	Fri Apr 01 09:04:54 2022 -0500
@@ -1,5 +1,5 @@
 /*
-% Copyright (C) 2003-2019 GraphicsMagick Group
+% Copyright (C) 2003-2022 GraphicsMagick Group
 % Copyright (C) 2002 ImageMagick Studio
 % Copyright 1991-1999 E. I. du Pont de Nemours and Company
 %
@@ -1030,15 +1030,24 @@
       if (reason)
         {
           if (description)
-            (void) LogMagickEvent(severity,module,function,line,"Ignored: %.1024s \
(%.1024s)", +            (void) LogMagickEvent(severity,
+                                  module != NULL ? module : "",
+                                  function != NULL ? function : "",
+                                  line,"Ignored: %.1024s (%.1024s)",
                                   reason,description);
           else
-            (void) LogMagickEvent(severity,module,function,line,"Ignored: %.1024s",
+            (void) LogMagickEvent(severity,
+                                  module != NULL ? module : "",
+                                  function != NULL ? function : "",
+                                  line,"Ignored: %.1024s",
                                   reason);
         }
       else
         {
-          (void) LogMagickEvent(severity,module,function,line,
+          (void) LogMagickEvent(severity,
+                                module != NULL ? module : "",
+                                function != NULL ? function : "",
+                                line,
                                 "Ignored: exception contains no reason!");
         }
       ignore=MagickTrue;
@@ -1085,15 +1094,24 @@
       if (exception->reason)
         {
           if (exception->description)
-            (void) LogMagickEvent(severity,module,function,line,"%.1024s (%.1024s)",
+            (void) LogMagickEvent(severity,
+                                  module != NULL ? module : "",
+                                  function != NULL ? function : "",
+                                  line,"%.1024s (%.1024s)",
                                   exception->reason,exception->description );
           else
-            (void) LogMagickEvent(severity,module,function,line,"%.1024s",
+            (void) LogMagickEvent(severity,
+                                  module != NULL ? module : "",
+                                  function != NULL ? function : "",
+                                  line,"%.1024s",
                                   exception->reason);
         }
       else
         {
-          (void) LogMagickEvent(severity,module,function,line,
+          (void) LogMagickEvent(severity,
+                                module != NULL ? module : "",
+                                function != NULL ? function : "",
+                                line,
                                 "exception contains no reason!");
         }
     }
diff -r 230c7f549ba5 -r 8c5fdda5297d magick/gradient.c
--- a/magick/gradient.c	Sat Mar 26 13:22:31 2022 -0500
+++ b/magick/gradient.c	Fri Apr 01 09:04:54 2022 -0500
@@ -189,7 +189,13 @@
     ThrowBinaryException(ResourceLimitError,MemoryAllocationFailed,
                          image->filename);
   if (span <= MaxColormapSize)
-    AllocateImageColormap(image,(unsigned long) span);
+    if (!AllocateImageColormap(image,(unsigned long) span))
+      {
+        MagickFreeMemory(pixel_packets);
+        ThrowException3(&image->exception, \
ResourceLimitError,MemoryAllocationFailed, +                        \
UnableToConstituteImage); +        return MagickFail;
+      }
 
   /*
     Generate gradient pixels using alpha blending
diff -r 230c7f549ba5 -r 8c5fdda5297d magick/locale.c
--- a/magick/locale.c	Sat Mar 26 13:22:31 2022 -0500
+++ b/magick/locale.c	Fri Apr 01 09:04:54 2022 -0500
@@ -1,5 +1,5 @@
 /*
-% Copyright (C) 2003, 2004 GraphicsMagick Group
+% Copyright (C) 2003 - 2022 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
@@ -198,7 +198,7 @@
 
   (void) strlcpy(category,tag,MaxTextExtent);
   ChopLocaleComponents(category,2);
-  for (k=0; k < ArraySize(category_map); k++)
+  for (k=0; k < ArraySize(category_map)-1; k++)
     {
       if (LocaleCompare(category,category_map[k].name) == 0)
         {
diff -r 230c7f549ba5 -r 8c5fdda5297d magick/magick_types.h.in
--- a/magick/magick_types.h.in	Sat Mar 26 13:22:31 2022 -0500
+++ b/magick/magick_types.h.in	Fri Apr 01 09:04:54 2022 -0500
@@ -113,36 +113,47 @@
 #else
 
   /* The following typedefs are subtituted when using Unixish configure */
-  typedef @INT8_T@   magick_int8_t;
-  typedef @UINT8_T@  magick_uint8_t;
+  typedef @INT8_T@   magick_int8_t;     /* int8_t */
+  typedef @UINT8_T@  magick_uint8_t;    /* uint8_t */
 
-  typedef @INT16_T@  magick_int16_t;
-  typedef @UINT16_T@ magick_uint16_t;
+  typedef @INT16_T@  magick_int16_t;    /* int16_t */
+  typedef @UINT16_T@ magick_uint16_t;   /* uint16_t */
 
-  typedef @INT32_T@  magick_int32_t;
-  typedef @UINT32_T@ magick_uint32_t;
+  typedef @INT32_T@  magick_int32_t;    /* int32_t */
+  typedef @UINT32_T@ magick_uint32_t;   /* uint32_t */
 
-  typedef @INT64_T@  magick_int64_t;
-  typedef @UINT64_T@ magick_uint64_t;
+  typedef @INT64_T@  magick_int64_t;    /* int64_t */
+  typedef @UINT64_T@ magick_uint64_t;   /* uint64_t */
 
 #  if defined(MAGICK_IMPLEMENTATION)
 
-#  define MAGICK_INT32_F @INT32_F@
-#  define MAGICK_UINT32_F @UINT32_F@
-#  define MAGICK_INT64_F @INT64_F@
-#  define MAGICK_UINT64_F @UINT64_F@
+#  define MAGICK_INT32_F @INT32_F@      /* %PRId32 */
+#  define MAGICK_UINT32_F @UINT32_F@    /* %PRIu32 */
+#  define MAGICK_INT64_F @INT64_F@      /* %PRId64 */
+#  define MAGICK_UINT64_F @UINT64_F@    /* %PRIu64 */
 
-  typedef @UINTMAX_T@ magick_uintmax_t;
-#  define MAGICK_UINTMAX_F @UINTMAX_F@
+  /*
+    C99 special size specifiers:
 
-  typedef @UINTPTR_T@ magick_uintptr_t;
-#  define MAGICK_UINTPTR_F @UINTPTR_F@
+    hh - signed char / unsigned char
+    h  - short / unsigned short
+    ll - long long / unsigned long long
+    j  - intmax_t / uintmax_t
+    z  - signed size_t / size_t
+    t  - ptrdiff_t / unsigned ptrdiff_t
+  */
 
-#  define MAGICK_SIZE_T_F @MAGICK_SIZE_T_F@
-#  define MAGICK_SIZE_T @MAGICK_SIZE_T@
+  typedef @UINTMAX_T@ magick_uintmax_t; /* uintmax_t */
+#  define MAGICK_UINTMAX_F @UINTMAX_F@  /* %ju */
+
+  typedef @UINTPTR_T@ magick_uintptr_t; /* uintptr_t */
+#  define MAGICK_UINTPTR_F @UINTPTR_F@  /* %tu */
 
-#  define MAGICK_SSIZE_T_F @MAGICK_SSIZE_T_F@
-#  define MAGICK_SSIZE_T @MAGICK_SSIZE_T@
+#  define MAGICK_SIZE_T_F @MAGICK_SIZE_T_F@ /* %zu */
+#  define MAGICK_SIZE_T @MAGICK_SIZE_T@     /* size_t */
+
+#  define MAGICK_SSIZE_T_F @MAGICK_SSIZE_T_F@ /* %zd */
+#  define MAGICK_SSIZE_T @MAGICK_SSIZE_T@     /* ssize_t */
 
 #endif /* defined(MAGICK_IMPLEMENTATION) */
 
diff -r 230c7f549ba5 -r 8c5fdda5297d magick/render.c
--- a/magick/render.c	Sat Mar 26 13:22:31 2022 -0500
+++ b/magick/render.c	Fri Apr 01 09:04:54 2022 -0500
@@ -1,5 +1,5 @@
 /*
-% Copyright (C) 2003-2020 GraphicsMagick Group
+% Copyright (C) 2003-2022 GraphicsMagick Group
 % Copyright (C) 2002 ImageMagick Studio
 % Copyright 1991-1999 E. I. du Pont de Nemours and Company
 %
@@ -5907,7 +5907,7 @@
   dvalue=ceil(primitive_info->point.x-0.5);
   if (MAGICK_ISNAN(dvalue) || ((dvalue < DTOLONG_MIN)) || (dvalue > DTOLONG_MAX))
     {
-      char double_str[18];
+      char double_str[MaxTextExtent];
       FormatString(double_str,"%g",dvalue);
       ThrowException(&image->exception,DrawError,PrimitiveArithmeticOverflow,double_str);
  return MagickFail;
@@ -5916,7 +5916,7 @@
   dvalue=ceil(primitive_info->point.y-0.5);
   if (MAGICK_ISNAN(dvalue) || ((dvalue < DTOLONG_MIN)) || (dvalue > DTOLONG_MAX))
     {
-      char double_str[18];
+      char double_str[MaxTextExtent];
       FormatString(double_str,"%g",dvalue);
       ThrowException(&image->exception,DrawError,PrimitiveArithmeticOverflow,double_str);
  return MagickFail;
diff -r 230c7f549ba5 -r 8c5fdda5297d magick/resize.c
--- a/magick/resize.c	Sat Mar 26 13:22:31 2022 -0500
+++ b/magick/resize.c	Fri Apr 01 09:04:54 2022 -0500
@@ -1,5 +1,5 @@
 /*
-% Copyright (C) 2003 - 2019 GraphicsMagick Group
+% Copyright (C) 2003 - 2022 GraphicsMagick Group
 % Copyright (C) 2002 ImageMagick Studio
 %
 % This program is covered by multiple licenses, which are described in
@@ -1805,6 +1805,7 @@
       MagickFreeMemory(scale_scanline);
       MagickFreeMemory(x_vector);
       MagickFreeMemory(y_vector);
+      MagickFreeMemory(y_volumes);
       DestroyImage(scale_image);
       ThrowImageException3(ResourceLimitError,MemoryAllocationFailed,
                            UnableToScaleImage);
diff -r 230c7f549ba5 -r 8c5fdda5297d magick/version.h
--- a/magick/version.h	Sat Mar 26 13:22:31 2022 -0500
+++ b/magick/version.h	Fri Apr 01 09:04:54 2022 -0500
@@ -38,8 +38,8 @@
 #define MagickLibVersion  0x272400
 #define MagickLibVersionText  "1.4"
 #define MagickLibVersionNumber 27,24,0
-#define MagickChangeDate   "20220326"
-#define MagickReleaseDate  "snapshot-20220326"
+#define MagickChangeDate   "20220401"
+#define MagickReleaseDate  "snapshot-20220401"
 
 /*
   The MagickLibInterfaceNewest and MagickLibInterfaceOldest defines
diff -r 230c7f549ba5 -r 8c5fdda5297d magick/xwindow.c
--- a/magick/xwindow.c	Sat Mar 26 13:22:31 2022 -0500
+++ b/magick/xwindow.c	Fri Apr 01 09:04:54 2022 -0500
@@ -1,5 +1,5 @@
 /*
-% Copyright (C) 2003 - 2020 GraphicsMagick Group
+% Copyright (C) 2003 - 2022 GraphicsMagick Group
 % Copyright (C) 2002 ImageMagick Studio
 %
 % This program is covered by multiple licenses, which are described in
@@ -7195,6 +7195,13 @@
     magnify>>=1;
   while (magnify > windows->magnify.height)
     magnify>>=1;
+  if (magnify == 0)
+    {
+      if (previous_magnify != 0)
+        magnify = previous_magnify;
+      else
+        magnify = 1;
+    }
   if (magnify != previous_magnify)
     {
       unsigned int
diff -r 230c7f549ba5 -r 8c5fdda5297d www/Changelog.html
--- a/www/Changelog.html	Sat Mar 26 13:22:31 2022 -0500
+++ b/www/Changelog.html	Fri Apr 01 09:04:54 2022 -0500
@@ -35,8 +35,26 @@
 <div class="document">
 
 
+<p>2022-04-01  Bob Friesenhahn  &lt;<a class="reference external" \
href="mailto:bfriesen&#37;&#52;&#48;simple&#46;dallas&#46;tx&#46;us">bfriesen<span>&#6 \
4;</span>simple<span>&#46;</span>dallas<span>&#46;</span>tx<span>&#46;</span>us</a>&gt;</p>
 +<blockquote>
+<p>* magick/error.c (ThrowLoggedException): Silence Coverity 376912
+&quot;Dereference after null check (FORWARD_NULL)&quot;.</p>
+<p>* coders/jp2.c (ReadJP2Image): Silence Coverity 264883 &quot;Division
+or modulo by float zero (DIVIDE_BY_ZERO)&quot;.
+(ReadJP2Image): Fix Coverity 376911 &quot;Improper use of negative
+value (NEGATIVE_RETURNS)&quot;.</p>
+<p>* magick/xwindow.c (MagickXMakeMagnifyImage): Fix Coverity 376906
+&quot;Division or modulo by zero (DIVIDE_BY_ZERO)&quot;.</p>
+<p>* magick/resize.c (ScaleImage): Fix Coverity 376908 &quot;Resource leak
+(RESOURCE_LEAK)&quot;.</p>
+<p>* magick/locale.c (GetLocaleMessageFromTag): Fix Coverity 376907
+&quot;Out-of-bounds read (OVERRUN)&quot;.</p>
+<p>* magick/render.c (DrawPrimitive): Fix Coverity 376904
+&quot;Out-of-bounds access (OVERRUN)&quot;.</p>
+</blockquote>
 <p>2022-03-26  Bob Friesenhahn  &lt;<a class="reference external" \
href="mailto:bfriesen&#37;&#52;&#48;simple&#46;dallas&#46;tx&#46;us">bfriesen<span>&#6 \
4;</span>simple<span>&#46;</span>dallas<span>&#46;</span>tx<span>&#46;</span>us</a>&gt;</p>
  <blockquote>
+<p>* version.sh: Prepare for 1.3.38 release.</p>
 <p>* Makefile.am (release, snapshot): Generate SHA-256 checksums as a
 by-product of 'make snapshot' or 'make release'.</p>
 <p>* www/download.rst: Add documentation regaring SHA-256 checksums.</p>
diff -r 230c7f549ba5 -r 8c5fdda5297d www/Changes.html
--- a/www/Changes.html	Sat Mar 26 13:22:31 2022 -0500
+++ b/www/Changes.html	Fri Apr 01 09:04:54 2022 -0500
@@ -43,7 +43,7 @@
 <p>The following are the <tt class="docutils literal">GraphicsMagick</tt> change \
logs since 2001:</p>  <blockquote>
 <ul class="simple">
-<li><a class="reference external" href="Changelog.html">2022</a> (nothing released \
yet)</li> +<li><a class="reference external" href="Changelog.html">2022</a> (1.3.38 \
released)</li>  <li><a class="reference external" href="ChangeLog-2021.html">2021</a> \
(1.3.37 released)</li>  <li><a class="reference external" \
href="ChangeLog-2020.html">2020</a> (1.3.35, 1.3.36 released)</li>  <li><a \
class="reference external" href="ChangeLog-2019.html">2019</a> (1.3.32, 1.3.33, \
                1.3.34 released)</li>
diff -r 230c7f549ba5 -r 8c5fdda5297d www/Changes.rst
--- a/www/Changes.rst	Sat Mar 26 13:22:31 2022 -0500
+++ b/www/Changes.rst	Fri Apr 01 09:04:54 2022 -0500
@@ -46,7 +46,7 @@
 
 The following are the ``GraphicsMagick`` change logs since 2001:
 
-  * 2022_ (nothing released yet)
+  * 2022_ (1.3.38 released)
 
   * 2021_ (1.3.37 released)
 
diff -r 230c7f549ba5 -r 8c5fdda5297d www/links.html
--- a/www/links.html	Sat Mar 26 13:22:31 2022 -0500
+++ b/www/links.html	Fri Apr 01 09:04:54 2022 -0500
@@ -67,6 +67,7 @@
 <p>Debian <a class="reference external" \
href="http://packages.debian.org/search?keywords=GraphicsMagick&amp;amp;searchon=names&amp;amp;suite=all&amp;amp;section=main">GraphicsMagick \
packages</a>.</p>  <p><a class="reference external" \
href="http://en.wikipedia.org/wiki/GraphicsMagick">WikiPedia</a> GraphicsMagick \
Entry.</p>  <p><a class="reference external" \
href="https://www.openhub.net/p/graphics_magick">Black Duck | Open HUB</a> \
GraphicsMagick Entry.</p> +<p><a href="#id21"><span class="problematic" \
id="id22">`Repology &lt;https://repology.org/project/graphicsmagick/versions`_</span></a> \
GraphicsMagick Package Versions in OS distributions.</p>  <p><a class="reference \
external" href="https://sourceforge.net/projects/graphicsmagick/">SourceForge</a> \
GraphicsMagick Entry.</p>  <p><a class="reference external" \
href="http://stackoverflow.com/questions/tagged/graphicsmagick?">GraphicsMagick \
questions on StackOverflow</a>.</p>  <p><a class="reference external" \
href="https://abi-laboratory.pro/tracker/timeline/graphicsmagick/">GraphicsMagick \
ABI/API Changes</a>.</p> @@ -201,6 +202,12 @@
 <h1><a class="toc-backref" href="#id20">Stock Photos</a></h1>
 <p><a class="reference external" href="https://morguefile.com/">MorgueFile</a>, Free \
high-resolution stock photo images.</p>  </div>
+<div class="system-messages section">
+<h1>Docutils System Messages</h1>
+<div class="system-message" id="id21">
+<p class="system-message-title">System Message: ERROR/3 (<tt \
class="docutils">/home/bfriesen/src/GM/www/links.rst</tt>, line 30); <em><a \
href="#id22">backlink</a></em></p>


_______________________________________________
Graphicsmagick-commit mailing list
Graphicsmagick-commit@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/graphicsmagick-commit


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic