aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArmin Kuster <akuster808@gmail.com>2017-11-26 16:14:05 -0800
committerRichard Purdie <richard.purdie@linuxfoundation.org>2017-12-11 22:01:55 +0000
commit462cdbd112555a363eddfe3e47cd9b14fccf9395 (patch)
treefa8b71ec00abdb0fbc55a35b7727912f9a6689d4
parentf8d6efda47b993e5e27631b9b7cd0a8638178e15 (diff)
downloadopenembedded-core-462cdbd112555a363eddfe3e47cd9b14fccf9395.tar.gz
binutls: Security fix for CVE-2017-9744
Affects: <= 2.28 Signed-off-by: Armin Kuster <akuster808@gmail.com>
-rw-r--r--meta/recipes-devtools/binutils/binutils-2.28.inc1
-rw-r--r--meta/recipes-devtools/binutils/binutils/CVE-2017-9744.patch46
2 files changed, 47 insertions, 0 deletions
diff --git a/meta/recipes-devtools/binutils/binutils-2.28.inc b/meta/recipes-devtools/binutils/binutils-2.28.inc
index 946f16c1c0..815e2bf5fb 100644
--- a/meta/recipes-devtools/binutils/binutils-2.28.inc
+++ b/meta/recipes-devtools/binutils/binutils-2.28.inc
@@ -55,6 +55,7 @@ SRC_URI = "\
file://CVE-2017-9039.patch \
file://CVE-2017-9040_9042.patch \
file://CVE-2017-9742.patch \
+ file://CVE-2017-9744.patch \
"
S = "${WORKDIR}/git"
diff --git a/meta/recipes-devtools/binutils/binutils/CVE-2017-9744.patch b/meta/recipes-devtools/binutils/binutils/CVE-2017-9744.patch
new file mode 100644
index 0000000000..c34a5a6ec9
--- /dev/null
+++ b/meta/recipes-devtools/binutils/binutils/CVE-2017-9744.patch
@@ -0,0 +1,46 @@
+From f461bbd847f15657f3dd2f317c30c75a7520da1f Mon Sep 17 00:00:00 2001
+From: Nick Clifton <nickc@redhat.com>
+Date: Wed, 14 Jun 2017 17:01:54 +0100
+Subject: [PATCH] Fix address violation bug when disassembling a corrupt SH
+ binary.
+
+ PR binutils/21578
+ * elf32-sh.c (sh_elf_set_mach_from_flags): Fix check for invalid
+ flag value.
+
+Upstream-Status: Backport
+CVE: CVE-2017-9744
+Signed-off-by: Armin Kuster <akuster@mvista.com>
+
+---
+ bfd/ChangeLog | 6 ++++++
+ bfd/elf32-sh.c | 2 +-
+ 2 files changed, 7 insertions(+), 1 deletion(-)
+
+Index: git/bfd/elf32-sh.c
+===================================================================
+--- git.orig/bfd/elf32-sh.c
++++ git/bfd/elf32-sh.c
+@@ -6344,7 +6344,7 @@ sh_elf_set_mach_from_flags (bfd *abfd)
+ {
+ flagword flags = elf_elfheader (abfd)->e_flags & EF_SH_MACH_MASK;
+
+- if (flags >= sizeof(sh_ef_bfd_table))
++ if (flags >= ARRAY_SIZE (sh_ef_bfd_table))
+ return FALSE;
+
+ if (sh_ef_bfd_table[flags] == 0)
+Index: git/bfd/ChangeLog
+===================================================================
+--- git.orig/bfd/ChangeLog
++++ git/bfd/ChangeLog
+@@ -1,3 +1,9 @@
++2017-06-14 Nick Clifton <nickc@redhat.com>
++
++ PR binutils/21578
++ * elf32-sh.c (sh_elf_set_mach_from_flags): Fix check for invalid
++ flag value.
++
+ 2017-04-29 Alan Modra <amodra@gmail.com>
+
+ PR 21432