blob: a117f95df1e3a373deed098888c9876775c26e68 [file] [log] [blame]
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08001From ab419ddbb2cdd17ca83618990f2cacf904ce1d61 Mon Sep 17 00:00:00 2001
2From: Alan Modra <amodra@gmail.com>
3Date: Tue, 23 Oct 2018 18:29:24 +1030
4Subject: [PATCH] PR23804, buffer overflow in sec_merge_hash_lookup
5
6 PR 23804
7 * merge.c (_bfd_add_merge_section): Don't attempt to merge
8 sections where size is not a multiple of entsize.
9
10Upstream-Status: Backport
11CVE: CVE-2018-18605
12Signed-off-by: Zhixiong Chi <zhixiong.chi@windriver.com>
13---
14 bfd/ChangeLog | 6 ++++++
15 bfd/merge.c | 3 +++
16 2 files changed, 9 insertions(+)
17
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080018--- a/bfd/merge.c
19+++ b/bfd/merge.c
Brad Bishop977dc1a2019-02-06 16:01:43 -050020@@ -376,6 +376,9 @@ _bfd_add_merge_section (bfd *abfd, void
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080021 || sec->entsize == 0)
22 return TRUE;
23
24+ if (sec->size % sec->entsize != 0)
25+ return TRUE;
26+
27 if ((sec->flags & SEC_RELOC) != 0)
28 {
29 /* We aren't prepared to handle relocations in merged sections. */