blob: f268a4eb58156fd44f6ff6faa9ec9c300d43797b [file] [log] [blame]
Andrew Geissler82c905d2020-04-13 13:39:40 -05001From ac4af583bd59f6631671ad4abf985799ce4a53d9 Mon Sep 17 00:00:00 2001
2From: rguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>
3Date: Thu, 25 Jul 2019 10:46:54 +0000
4Subject: [PATCH 37/39] CVE-2019-14250: Check zero value in
5 simple_object_elf_match
6
72019-07-25 Richard Biener <rguenther@suse.de>
8
9 PR lto/90924
10 Backport from mainline
11 2019-07-12 Ren Kimura <rkx1209dev@gmail.com>
12
13 * simple-object-elf.c (simple_object_elf_match): Check zero value
14 shstrndx.
15
16git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-9-branch@273793 138bc75d-0d04-0410-961f-82ee72b054a4
17
18Upstream-Status: Backport
19Affectes: < 9.2
20CVE: CVE-2019-14250
21Dropped changelog
22Signed-off-by: Armin Kuster <Akustre@mvista.com>
23---
24 libiberty/simple-object-elf.c | 8 ++++++++
25 1 file changed, 8 insertions(+)
26
27diff --git a/libiberty/simple-object-elf.c b/libiberty/simple-object-elf.c
28index 3d49f339631..c00cebdb6c7 100644
29--- a/libiberty/simple-object-elf.c
30+++ b/libiberty/simple-object-elf.c
31@@ -557,6 +557,14 @@ simple_object_elf_match (unsigned char header[SIMPLE_OBJECT_MATCH_HEADER_LEN],
32 return NULL;
33 }
34
35+ if (eor->shstrndx == 0)
36+ {
37+ *errmsg = "invalid ELF shstrndx == 0";
38+ *err = 0;
39+ XDELETE (eor);
40+ return NULL;
41+ }
42+
43 return (void *) eor;
44 }
45
46--
472.25.1
48