Sisyphus repositório
Última atualização: 1 outubro 2023 | SRPMs: 18631 | Visitas: 37047651
en ru br
ALT Linux repositórios
S:0.21-alt2
5.0: 0.17-alt6
4.1: 0.17-alt3
4.0: 0.14.6-alt2
3.0: 0.14.4-alt1

Outros repositórios
Upstream:0.17

Group :: Sistema/Base
RPM: gettext

 Main   Changelog   Spec   Patches   Sources   Download   Gear   Bugs e FR  Repocop 

Patch: 0001-po-gram-fix-memory-leaks.patch
Download


From 96b6ddbad0ab670ab6938376f3193c4327e75f14 Mon Sep 17 00:00:00 2001
From: Daiki Ueno <ueno@gnu.org>
Date: Thu, 29 Aug 2013 12:33:37 +0900
Subject: [PATCH 1/4] po-gram: fix memory leaks
---
 gettext-tools/src/ChangeLog     |  9 +++++++++
 gettext-tools/src/po-gram-gen.y | 17 ++++++++++++-----
 2 files changed, 21 insertions(+), 5 deletions(-)
diff --git a/gettext-tools/src/ChangeLog b/gettext-tools/src/ChangeLog
index 4e3891a..e03bc6c 100644
--- a/gettext-tools/src/ChangeLog
+++ b/gettext-tools/src/ChangeLog
@@ -1,3 +1,12 @@
+2013-08-29  Daiki Ueno  <ueno@gnu.org>
+
+	* po-gram-gen.y (message): Free memory allocated for
+	msgid_pluralform.
+	(string_list): Free memory allocated for STRING.
+	(prev_string_list): Free memory allocated for PREV_STRING.
+	Reported by Alexander Potashev in
+	<https://lists.gnu.org/archive/html/bug-gettext/2013-08/msg00043.html>.
+
 2013-11-11  Daiki Ueno  <ueno@gnu.org>
 
 	* x-c.c (phase5_get): Fix misuse of a logical operator.
diff --git a/gettext-tools/src/po-gram-gen.y b/gettext-tools/src/po-gram-gen.y
index bdc568a..8f888bd 100644
--- a/gettext-tools/src/po-gram-gen.y
+++ b/gettext-tools/src/po-gram-gen.y
@@ -220,11 +220,14 @@ message
                   check_obsolete ($1, $3);
                   check_obsolete ($1, $4);
                   if (!$1.obsolete || pass_obsolete_entries)
-                    do_callback_message ($1.ctxt, string2, &$1.pos, $3.string,
-                                         $4.rhs.msgstr, $4.rhs.msgstr_len, &$4.pos,
-                                         $1.prev_ctxt,
-                                         $1.prev_id, $1.prev_id_plural,
-                                         $1.obsolete);
+                    {
+                      do_callback_message ($1.ctxt, string2, &$1.pos, $3.string,
+                                           $4.rhs.msgstr, $4.rhs.msgstr_len, &$4.pos,
+                                           $1.prev_ctxt,
+                                           $1.prev_id, $1.prev_id_plural,
+                                           $1.obsolete);
+                      free ($3.string);
+                    }
                   else
                     {
                       free_message_intro ($1);
@@ -411,6 +414,7 @@ string_list
                 {
                   string_list_init (&$$.stringlist);
                   string_list_append (&$$.stringlist, $1.string);
+                  free ($1.string);
                   $$.pos = $1.pos;
                   $$.obsolete = $1.obsolete;
                 }
@@ -419,6 +423,7 @@ string_list
                   check_obsolete ($1, $2);
                   $$.stringlist = $1.stringlist;
                   string_list_append (&$$.stringlist, $2.string);
+                  free ($2.string);
                   $$.pos = $1.pos;
                   $$.obsolete = $1.obsolete;
                 }
@@ -429,6 +434,7 @@ prev_string_list
                 {
                   string_list_init (&$$.stringlist);
                   string_list_append (&$$.stringlist, $1.string);
+                  free ($1.string);
                   $$.pos = $1.pos;
                   $$.obsolete = $1.obsolete;
                 }
@@ -437,6 +443,7 @@ prev_string_list
                   check_obsolete ($1, $2);
                   $$.stringlist = $1.stringlist;
                   string_list_append (&$$.stringlist, $2.string);
+                  free ($2.string);
                   $$.pos = $1.pos;
                   $$.obsolete = $1.obsolete;
                 }
-- 
1.8.4.3
 
projeto & código: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
mantenedor atual: Michael Shigorin
mantenedor da tradução: Fernando Martini aka fmartini © 2009