GraphicsMagick: (TranslateTextEx(): Restore previous functionali...

GraphicsMagick Commits <[email protected]> Sun, 27 Aug 2023 13:08:37 -0500
Newsgroups gmane.comp.video.graphicsmagick.cvs
Message-ID <mailman.12002.1693159729.1374.graphicsmagick-commit@lists.sourceforge.net>
changeset 91afa18a6161 in /hg/GraphicsMagick
details: http://hg.GraphicsMagick.org/hg/GraphicsMagick?cmd=changeset;node=91afa18a6161
summary: (TranslateTextEx(): Restore previous functionality in which a NULL pointer is returned instead of an empty string

diffstat:

 ChangeLog                              |   8 ++++++++
 VisualMagick/installer/inc/version.isx |   4 ++--
 magick/utility.c                       |  26 ++++++++++++--------------
 magick/version.h                       |   4 ++--
 www/Changelog.html                     |  10 ++++++++++
 5 files changed, 34 insertions(+), 18 deletions(-)

diffs (117 lines):

diff -r 12de9f7ed9ac -r 91afa18a6161 ChangeLog
--- a/ChangeLog	Tue Aug 22 17:21:30 2023 -0500
+++ b/ChangeLog	Sun Aug 27 13:08:31 2023 -0500
@@ -1,3 +1,11 @@
+2023-08-27  Bob Friesenhahn  <[email protected]>
+
+	* magick/utility.c (TranslateTextEx): Restore previous
+	functionality in which a NULL pointer is returned instead of an
+	empty string. Some algorithms are depending on this!  Addresses
+	SourceForge issue #722 v1.3.41 "PerlMagick montage.t fails
+	completely".
+
 2023-08-23  Fojtik Jaroslav  <[email protected]>
 	
 	* VisualMagick\installer\inc\files-dlls.isx
diff -r 12de9f7ed9ac -r 91afa18a6161 VisualMagick/installer/inc/version.isx
--- a/VisualMagick/installer/inc/version.isx	Tue Aug 22 17:21:30 2023 -0500
+++ b/VisualMagick/installer/inc/version.isx	Sun Aug 27 13:08:31 2023 -0500
@@ -10,5 +10,5 @@
 
 #define public MagickPackageName "GraphicsMagick"
 #define public MagickPackageVersion "1.4"
-#define public MagickPackageVersionAddendum ".020230823"
-#define public MagickPackageReleaseDate "snapshot-20230823"
+#define public MagickPackageVersionAddendum ".020230827"
+#define public MagickPackageReleaseDate "snapshot-20230827"
diff -r 12de9f7ed9ac -r 91afa18a6161 magick/utility.c
--- a/magick/utility.c	Tue Aug 22 17:21:30 2023 -0500
+++ b/magick/utility.c	Sun Aug 27 13:08:31 2023 -0500
@@ -6218,8 +6218,9 @@
 %
 %  A description of each parameter follows:
 %
-%    o translated_text:  Method TranslateText returns the translated
-%      text string.
+%    o translated_text:  Method TranslateText returns a new allocation
+%      containing the translated text string.  If the translated text
+%      string would be empty, a NULL pointer is returned instead.
 %
 %    o image_info: The imageInfo (may be NULL!).
 %
@@ -6307,8 +6308,9 @@
 %
 %  A description of each parameter follows:
 %
-%    o translated_text:  Method TranslateText returns the translated
-%      text string.
+%    o translated_text:  Method TranslateTextEx returns a new allocation
+%      containing the translated text string.  If the translated text
+%      string would be empty, a NULL pointer is returned instead.
 %
 %    o image_info: The imageInfo (may be NULL!).
 %
@@ -6345,23 +6347,19 @@
     offset;
 
   assert(image != (Image *) NULL);
-  if (formatted_text == (const char *) NULL)
+  if ((formatted_text == (const char *) NULL) || (*formatted_text == '\0'))
     return((char *) NULL);
-  if (*formatted_text == '\0')
-    return AcquireString(formatted_text);
   text=(char *) formatted_text;
   /*
     Translate any embedded format characters.
   */
-  length=strlen(text)+MaxTextExtent;
-  translated_text=MagickAllocateMemory(char *,length);
+  length=strlen(text);
+  translated_text=MagickAllocateMemory(char *,length+MaxTextExtent);
   if (translated_text == (char *) NULL)
     return NULL;
-  /*
-    FIXME: Overlapping memory detected here where memory should not be overlapping.
-  */
-  (void) strlcpy(translated_text,text,length);
-  /* (void) memmove(translated_text,text,strlen(text)+1); */
+  (void) memcpy(translated_text,text,length);
+  translated_text[length]='\0';
+  length=length+MaxTextExtent;
   p=text;
   for (q=translated_text; *p != '\0'; p++)
   {
diff -r 12de9f7ed9ac -r 91afa18a6161 magick/version.h
--- a/magick/version.h	Tue Aug 22 17:21:30 2023 -0500
+++ b/magick/version.h	Sun Aug 27 13:08:31 2023 -0500
@@ -38,8 +38,8 @@
 #define MagickLibVersion  0x272403
 #define MagickLibVersionText  "1.4"
 #define MagickLibVersionNumber 27,24,3
-#define MagickChangeDate   "20230823"
-#define MagickReleaseDate  "snapshot-20230823"
+#define MagickChangeDate   "20230827"
+#define MagickReleaseDate  "snapshot-20230827"
 
 /*
   The MagickLibInterfaceNewest and MagickLibInterfaceOldest defines
diff -r 12de9f7ed9ac -r 91afa18a6161 www/Changelog.html
--- a/www/Changelog.html	Tue Aug 22 17:21:30 2023 -0500
+++ b/www/Changelog.html	Sun Aug 27 13:08:31 2023 -0500
@@ -37,6 +37,16 @@
 </div>
 
 <div class="document">
+<p>2023-08-27  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>magick/utility.c (TranslateTextEx): Restore previous
+functionality in which a NULL pointer is returned instead of an
+empty string. Some algorithms are depending on this!  Addresses
+SourceForge issue #722 v1.3.41 &quot;PerlMagick montage.t fails
+completely&quot;.</p></li>
+</ul>
+</blockquote>
 <p>2023-08-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>
 <ul>