35 lines
1.1 KiB
Diff
35 lines
1.1 KiB
Diff
From 82f439d028c65663a0baf0a17ef5c4a2ea5c84a7 Mon Sep 17 00:00:00 2001
|
|
From: Nick Clifton <nickc@redhat.com>
|
|
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
|
|
|