bug-gettext
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[bug-gettext] [PATCH] Fix memory leak.


From: Daiki Ueno
Subject: [bug-gettext] [PATCH] Fix memory leak.
Date: Mon, 17 Dec 2012 10:16:51 +0900

---
When playing with the Python brace format patch, I noticed that
xgettext always leaks ~180 bytes.  While the issue is minor, I think
the fix is safe enough for 0.18.2.

Regards,
-- 
Daiki Ueno

 gettext-tools/src/ChangeLog  |    4 ++++
 gettext-tools/src/xgettext.c |   13 ++++++++-----
 2 files changed, 12 insertions(+), 5 deletions(-)

diff --git a/gettext-tools/src/ChangeLog b/gettext-tools/src/ChangeLog
index d0e66c7..af86cbd 100644
--- a/gettext-tools/src/ChangeLog
+++ b/gettext-tools/src/ChangeLog
@@ -1,3 +1,7 @@
+2012-12-17  Daiki Ueno  <address@hidden>
+
+       * xgettext.c (construct_header): Fix memory leak.
+
 2012-06-03  Jim Meyering  <address@hidden>
 
        * msginit.c: Spelling fixes.
diff --git a/gettext-tools/src/xgettext.c b/gettext-tools/src/xgettext.c
index eb3271f..90184b7 100644
--- a/gettext-tools/src/xgettext.c
+++ b/gettext-tools/src/xgettext.c
@@ -3000,6 +3000,7 @@ construct_header ()
   char *timestring;
   message_ty *mp;
   char *msgstr;
+  char *comment;
   static lex_pos_ty pos = { __FILE__, __LINE__ };
 
   if (package_name != NULL)
@@ -3043,18 +3044,20 @@ Content-Transfer-Encoding: 8bit\n",
 
   mp = message_alloc (NULL, "", NULL, msgstr, strlen (msgstr) + 1, &pos);
 
-  message_comment_append (mp,
-                          copyright_holder[0] != '\0'
-                          ? xasprintf ("\
+  if (copyright_holder[0] != '\0')
+    comment = xasprintf ("\
 SOME DESCRIPTIVE TITLE.\n\
 Copyright (C) YEAR %s\n\
 This file is distributed under the same license as the PACKAGE package.\n\
 FIRST AUTHOR <address@hidden>, YEAR.\n",
-                                       copyright_holder)
-                          : "\
+                        copyright_holder);
+  else
+    comment = xstrdup ("\
 SOME DESCRIPTIVE TITLE.\n\
 This file is put in the public domain.\n\
 FIRST AUTHOR <address@hidden>, YEAR.\n");
+  message_comment_append (mp, comment);
+  free (comment);
 
   mp->is_fuzzy = true;
 
-- 
1.7.10.4




reply via email to

[Prev in Thread] Current Thread [Next in Thread]