From 82f439d028c65663a0baf0a17ef5c4a2ea5c84a7 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Tue, 11 Feb 2020 15:55:25 +0000 Subject: [PATCH] Import a fix from the mainline sources that prevents a potential illegal memory access when parsing PE binaries. PR 25447 * coffgen.c (_bfd_coff_close_and_cleanup): Do not clear the keep syms and keep strings flags as these may have been set in order to prevent a bogus call to free. --- bfd/coffgen.c | 6 ++++-- 1 files changed, 4 insertions(+), 2 deletions(-) diff --git a/bfd/coffgen.c b/bfd/coffgen.c index 2bfcf1a..3ddd2d8 100644 --- a/bfd/coffgen.c +++ b/bfd/coffgen.c @@ -3175,8 +3175,10 @@ _bfd_coff_close_and_cleanup (bfd *abfd) && bfd_family_coff (abfd) && coff_data (abfd) != NULL) { - obj_coff_keep_syms (abfd) = FALSE; - obj_coff_keep_strings (abfd) = FALSE; + /* PR 25447: + Do not clear the keep_syms and keep_strings flags. + These may have been set by pe_ILF_build_a_bfd() indicating + that the syms and strings pointers are not to be freed. */ if (!_bfd_coff_free_symbols (abfd)) return FALSE; } -- 1.8.3.1