From a26a013f22a19e2c16729e64f40ef8a7dfcc086e Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Sun, 24 Sep 2017 17:10:14 +0930 Subject: [PATCH] PR22191, memory leak in dwarf2.c table->sequences is a linked list before it is replaced by a bfd_alloc array in sort_line_sequences. PR 22191 * dwarf2.c (decode_line_info): Properly free line sequences on error. Upstream-Status: Backport Affects: <= 2.29.1 CVE: CVE-2017-14930 Signed-off-by: Armin Kuster --- bfd/ChangeLog | 5 +++++ bfd/dwarf2.c | 8 ++++++-- 2 files changed, 11 insertions(+), 2 deletions(-) Index: git/bfd/dwarf2.c =================================================================== --- git.orig/bfd/dwarf2.c +++ git/bfd/dwarf2.c @@ -2473,8 +2473,12 @@ decode_line_info (struct comp_unit *unit return table; fail: - if (table->sequences != NULL) - free (table->sequences); + while (table->sequences != NULL) + { + struct line_sequence* seq = table->sequences; + table->sequences = table->sequences->prev_sequence; + free (seq); + } if (table->files != NULL) free (table->files); if (table->dirs != NULL) Index: git/bfd/ChangeLog =================================================================== --- git.orig/bfd/ChangeLog +++ git/bfd/ChangeLog @@ -1,3 +1,8 @@ +2017-09-24 Alan Modra + + PR 22191 + * dwarf2.c (decode_line_info): Properly free line sequences on error. + 2017-11-28 Nick Clifton PR 22507