gcc: Security fix CVE-2016-4488

(From OE-Core rev: 07820907d25970f2c22497415aa6ff95fe43dc40)

Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Armin Kuster 2016-05-05 15:12:58 -07:00 committed by Richard Purdie
parent 44585dd62a
commit e3bf77e381
2 changed files with 71 additions and 0 deletions

View File

@ -74,6 +74,7 @@ SRC_URI = "\
file://0040-nativesdk-gcc-support.patch \
file://0041-handle-target-sysroot-multilib.patch \
file://0042-cxxflags-for-build.patch \
file://CVE-2016-4488.patch \
"
BACKPORTS = ""

View File

@ -0,0 +1,70 @@
From be3004dc350a820a5b0320b34bd05673ba534058 Mon Sep 17 00:00:00 2001
From: law <law@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Thu, 31 Mar 2016 17:20:53 +0000
Subject: [PATCH] * cplus-dem.c (squangle_mop_up): Zero bsize/ksize
after freeing btypevec/ktypevec. * testsuite/demangle-expected: Add
coverage tests.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@234645 138bc75d-0d04-0410-961f-82ee72b054a4
Upstream-Status: Backport
CVE: CVE-2016-4488
Signed-off-by: Armin Kuster <akuster@mvista.com>
---
libiberty/ChangeLog | 7 +++++++
libiberty/cplus-dem.c | 2 ++
libiberty/testsuite/demangle-expected | 10 ++++++++++
3 files changed, 19 insertions(+)
Index: gcc-5.2.0/libiberty/cplus-dem.c
===================================================================
--- gcc-5.2.0.orig/libiberty/cplus-dem.c
+++ gcc-5.2.0/libiberty/cplus-dem.c
@@ -1237,11 +1237,13 @@ squangle_mop_up (struct work_stuff *work
{
free ((char *) work -> btypevec);
work->btypevec = NULL;
+ work->bsize = 0;
}
if (work -> ktypevec != NULL)
{
free ((char *) work -> ktypevec);
work->ktypevec = NULL;
+ work->ksize = 0;
}
}
Index: gcc-5.2.0/libiberty/testsuite/demangle-expected
===================================================================
--- gcc-5.2.0.orig/libiberty/testsuite/demangle-expected
+++ gcc-5.2.0/libiberty/testsuite/demangle-expected
@@ -4356,3 +4356,13 @@ _QueueNotification_QueueController__$4PP
--format=gnu-v3
_Z1fSsB3fooS_
f(std::string[abi:foo], std::string[abi:foo])
+#
+# Tests a use-after-free problem
+
+_Q.__0
+::Q.(void)
+#
+# Tests a use-after-free problem
+
+_Q10-__9cafebabe.
+cafebabe.::-(void)
Index: gcc-5.2.0/libiberty/ChangeLog
===================================================================
--- gcc-5.2.0.orig/libiberty/ChangeLog
+++ gcc-5.2.0/libiberty/ChangeLog
@@ -1,3 +1,10 @@
+2016-03-31 Mikhail Maltsev <maltsevm@gmail.com>
+ Marcel Bohme boehme.marcel@gmail.com
+
+ * cplus-dem.c (squangle_mop_up): Zero bsize/ksize after freeing
+ btypevec/ktypevec.
+ * testsuite/demangle-expected: Add coverage tests.
+
2015-07-16 Release Manager
* GCC 5.2.0 released.