From: Daiki Ueno Date: Thu, 29 Aug 2013 03:33:37 +0000 (+0900) Subject: po-gram: fix memory leaks X-Git-Tag: v0.19~169 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=70c796d06e832ec46533447f9d076a720e580409;p=thirdparty%2Fgettext.git po-gram: fix memory leaks --- diff --git a/gettext-tools/src/ChangeLog b/gettext-tools/src/ChangeLog index 7a8872fff..cb77c9634 100644 --- a/gettext-tools/src/ChangeLog +++ b/gettext-tools/src/ChangeLog @@ -1,3 +1,12 @@ +2013-08-29 Daiki Ueno + + * 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 + . + 2013-08-13 Miguel Angel Arruga Vivas * x-glade.c (start_element_glade1): Use extract_all variable. diff --git a/gettext-tools/src/po-gram-gen.y b/gettext-tools/src/po-gram-gen.y index bdc568aab..8f888bddc 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; }