Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
systemsmanagement:saltstack:bundle:testing:SLE11:deps
gettext-runtime
msgfmt-double-free.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File msgfmt-double-free.patch of Package gettext-runtime
--- gettext-0.19.8.1/gettext-tools/src/read-catalog.c +++ gettext-0.19.8.1/gettext-tools/src/read-catalog.c @@ -397,6 +397,8 @@ default_add_message (default_catalog_reader_ty *this, appropriate. */ mp = message_alloc (msgctxt, msgid, msgid_plural, msgstr, msgstr_len, msgstr_pos); + if (msgid_plural != NULL) + free (msgid_plural); mp->prev_msgctxt = prev_msgctxt; mp->prev_msgid = prev_msgid; mp->prev_msgid_plural = prev_msgid_plural; --- a/gettext-tools/src/po-gram-gen.y +++ b/gettext-tools/src/po-gram-gen.y @@ -221,14 +221,11 @@ 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); - free ($3.string); - } + 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); else { free_message_intro ($1); --- gettext-0.19.2/gettext-tools/src/po-gram-gen.c 2014-07-14 09:31:39.000000000 +0200 +++ po-gram-gen_2.c 2019-07-26 14:56:48.246257254 +0200 @@ -586,9 +586,9 @@ static const yytype_uint16 yyrline[] = { 0, 168, 168, 170, 171, 172, 173, 178, 186, 194, - 215, 239, 248, 257, 268, 277, 291, 300, 314, 320, - 331, 337, 349, 360, 371, 375, 390, 413, 421, 433, - 441 + 215, 236, 245, 254, 265, 274, 288, 297, 311, 317, + 328, 334, 346, 357, 368, 372, 387, 410, 418, 430, + 438 }; #endif @@ -1560,14 +1560,11 @@ check_obsolete ((yyvsp[(1) - (4)].message_intro), (yyvsp[(3) - (4)].string)); check_obsolete ((yyvsp[(1) - (4)].message_intro), (yyvsp[(4) - (4)].rhs)); if (!(yyvsp[(1) - (4)].message_intro).obsolete || pass_obsolete_entries) - { - do_callback_message ((yyvsp[(1) - (4)].message_intro).ctxt, string2, &(yyvsp[(1) - (4)].message_intro).pos, (yyvsp[(3) - (4)].string).string, - (yyvsp[(4) - (4)].rhs).rhs.msgstr, (yyvsp[(4) - (4)].rhs).rhs.msgstr_len, &(yyvsp[(4) - (4)].rhs).pos, - (yyvsp[(1) - (4)].message_intro).prev_ctxt, - (yyvsp[(1) - (4)].message_intro).prev_id, (yyvsp[(1) - (4)].message_intro).prev_id_plural, - (yyvsp[(1) - (4)].message_intro).obsolete); - free ((yyvsp[(3) - (4)].string).string); - } + do_callback_message ((yyvsp[(1) - (4)].message_intro).ctxt, string2, &(yyvsp[(1) - (4)].message_intro).pos, (yyvsp[(3) - (4)].string).string, + (yyvsp[(4) - (4)].rhs).rhs.msgstr, (yyvsp[(4) - (4)].rhs).rhs.msgstr_len, &(yyvsp[(4) - (4)].rhs).pos, + (yyvsp[(1) - (4)].message_intro).prev_ctxt, + (yyvsp[(1) - (4)].message_intro).prev_id, (yyvsp[(1) - (4)].message_intro).prev_id_plural, + (yyvsp[(1) - (4)].message_intro).obsolete); else { free_message_intro ((yyvsp[(1) - (4)].message_intro)); @@ -1580,7 +1577,7 @@ case 11: /* Line 1792 of yacc.c */ -#line 240 "po-gram-gen.y" +#line 237 "po-gram-gen.y" { check_obsolete ((yyvsp[(1) - (3)].message_intro), (yyvsp[(2) - (3)].stringlist)); check_obsolete ((yyvsp[(1) - (3)].message_intro), (yyvsp[(3) - (3)].string)); @@ -1593,7 +1590,7 @@ case 12: /* Line 1792 of yacc.c */ -#line 249 "po-gram-gen.y" +#line 246 "po-gram-gen.y" { check_obsolete ((yyvsp[(1) - (3)].message_intro), (yyvsp[(2) - (3)].stringlist)); check_obsolete ((yyvsp[(1) - (3)].message_intro), (yyvsp[(3) - (3)].rhs)); @@ -1606,7 +1603,7 @@ case 13: /* Line 1792 of yacc.c */ -#line 258 "po-gram-gen.y" +#line 255 "po-gram-gen.y" { check_obsolete ((yyvsp[(1) - (2)].message_intro), (yyvsp[(2) - (2)].stringlist)); po_gram_error_at_line (&(yyvsp[(1) - (2)].message_intro).pos, _("missing 'msgstr' section")); @@ -1617,7 +1614,7 @@ case 14: /* Line 1792 of yacc.c */ -#line 269 "po-gram-gen.y" +#line 266 "po-gram-gen.y" { (yyval.message_intro).prev_ctxt = NULL; (yyval.message_intro).prev_id = NULL; @@ -1630,7 +1627,7 @@ case 15: /* Line 1792 of yacc.c */ -#line 278 "po-gram-gen.y" +#line 275 "po-gram-gen.y" { check_obsolete ((yyvsp[(1) - (2)].prev), (yyvsp[(2) - (2)].string)); (yyval.message_intro).prev_ctxt = (yyvsp[(1) - (2)].prev).ctxt; @@ -1644,7 +1641,7 @@ case 16: /* Line 1792 of yacc.c */ -#line 292 "po-gram-gen.y" +#line 289 "po-gram-gen.y" { check_obsolete ((yyvsp[(1) - (2)].string), (yyvsp[(2) - (2)].stringlist)); (yyval.prev).ctxt = (yyvsp[(1) - (2)].string).string; @@ -1657,7 +1654,7 @@ case 17: /* Line 1792 of yacc.c */ -#line 301 "po-gram-gen.y" +#line 298 "po-gram-gen.y" { check_obsolete ((yyvsp[(1) - (3)].string), (yyvsp[(2) - (3)].stringlist)); check_obsolete ((yyvsp[(1) - (3)].string), (yyvsp[(3) - (3)].string)); @@ -1671,7 +1668,7 @@ case 18: /* Line 1792 of yacc.c */ -#line 315 "po-gram-gen.y" +#line 312 "po-gram-gen.y" { (yyval.string).string = NULL; (yyval.string).pos = (yyvsp[(1) - (1)].pos).pos; @@ -1681,7 +1678,7 @@ case 19: /* Line 1792 of yacc.c */ -#line 321 "po-gram-gen.y" +#line 318 "po-gram-gen.y" { check_obsolete ((yyvsp[(1) - (3)].pos), (yyvsp[(2) - (3)].stringlist)); check_obsolete ((yyvsp[(1) - (3)].pos), (yyvsp[(3) - (3)].pos)); @@ -1693,7 +1690,7 @@ case 20: /* Line 1792 of yacc.c */ -#line 332 "po-gram-gen.y" +#line 329 "po-gram-gen.y" { (yyval.string).string = NULL; (yyval.string).pos = (yyvsp[(1) - (1)].pos).pos; @@ -1703,7 +1700,7 @@ case 21: /* Line 1792 of yacc.c */ -#line 338 "po-gram-gen.y" +#line 335 "po-gram-gen.y" { check_obsolete ((yyvsp[(1) - (3)].pos), (yyvsp[(2) - (3)].stringlist)); check_obsolete ((yyvsp[(1) - (3)].pos), (yyvsp[(3) - (3)].pos)); @@ -1715,7 +1712,7 @@ case 22: /* Line 1792 of yacc.c */ -#line 350 "po-gram-gen.y" +#line 347 "po-gram-gen.y" { check_obsolete ((yyvsp[(1) - (2)].pos), (yyvsp[(2) - (2)].stringlist)); plural_counter = 0; @@ -1727,7 +1724,7 @@ case 23: /* Line 1792 of yacc.c */ -#line 361 "po-gram-gen.y" +#line 358 "po-gram-gen.y" { check_obsolete ((yyvsp[(1) - (2)].pos), (yyvsp[(2) - (2)].stringlist)); (yyval.string).string = string_list_concat_destroy (&(yyvsp[(2) - (2)].stringlist).stringlist); @@ -1738,7 +1735,7 @@ case 24: /* Line 1792 of yacc.c */ -#line 372 "po-gram-gen.y" +#line 369 "po-gram-gen.y" { (yyval.rhs) = (yyvsp[(1) - (1)].rhs); } @@ -1746,7 +1743,7 @@ case 25: /* Line 1792 of yacc.c */ -#line 376 "po-gram-gen.y" +#line 373 "po-gram-gen.y" { check_obsolete ((yyvsp[(1) - (2)].rhs), (yyvsp[(2) - (2)].rhs)); (yyval.rhs).rhs.msgstr = XNMALLOC ((yyvsp[(1) - (2)].rhs).rhs.msgstr_len + (yyvsp[(2) - (2)].rhs).rhs.msgstr_len, char); @@ -1762,7 +1759,7 @@ case 26: /* Line 1792 of yacc.c */ -#line 391 "po-gram-gen.y" +#line 388 "po-gram-gen.y" { check_obsolete ((yyvsp[(1) - (5)].pos), (yyvsp[(2) - (5)].pos)); check_obsolete ((yyvsp[(1) - (5)].pos), (yyvsp[(3) - (5)].number)); @@ -1785,7 +1782,7 @@ case 27: /* Line 1792 of yacc.c */ -#line 414 "po-gram-gen.y" +#line 411 "po-gram-gen.y" { string_list_init (&(yyval.stringlist).stringlist); string_list_append (&(yyval.stringlist).stringlist, (yyvsp[(1) - (1)].string).string); @@ -1797,7 +1794,7 @@ case 28: /* Line 1792 of yacc.c */ -#line 422 "po-gram-gen.y" +#line 419 "po-gram-gen.y" { check_obsolete ((yyvsp[(1) - (2)].stringlist), (yyvsp[(2) - (2)].string)); (yyval.stringlist).stringlist = (yyvsp[(1) - (2)].stringlist).stringlist; @@ -1810,7 +1807,7 @@ case 29: /* Line 1792 of yacc.c */ -#line 434 "po-gram-gen.y" +#line 431 "po-gram-gen.y" { string_list_init (&(yyval.stringlist).stringlist); string_list_append (&(yyval.stringlist).stringlist, (yyvsp[(1) - (1)].string).string); @@ -1822,7 +1819,7 @@ case 30: /* Line 1792 of yacc.c */ -#line 442 "po-gram-gen.y" +#line 439 "po-gram-gen.y" { check_obsolete ((yyvsp[(1) - (2)].stringlist), (yyvsp[(2) - (2)].string)); (yyval.stringlist).stringlist = (yyvsp[(1) - (2)].stringlist).stringlist; @@ -1835,7 +1832,7 @@ /* Line 1792 of yacc.c */ -#line 1839 "po-gram-gen.c" +#line 1836 "po-gram-gen.c" default: break; } /* User semantic actions sometimes alter yychar, and that requires
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor