gcc: Security fix CVE-2016-4489

(From OE-Core rev: 448e625c566d305e70321bdfbbaa39be34211704)

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:13:54 -07:00
committed by Richard Purdie
parent 5a1ac4ea59
commit 93f29f536e
2 changed files with 57 additions and 0 deletions

View File

@@ -90,6 +90,7 @@ SRC_URI = "\
file://0058-fdebug-prefix-map-support-to-remap-relative-path.patch \
file://0059-libgcc-use-ldflags.patch \
file://CVE-2016-4488.patch \
file://CVE-2016-4489.patch \
"
BACKPORTS = ""

View File

@@ -0,0 +1,56 @@
From 053ec2207203a194d2ae82e2f164009aad3f14d2 Mon Sep 17 00:00:00 2001
From: bernds <bernds@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Fri, 8 Apr 2016 12:06:59 +0000
Subject: [PATCH] =?UTF-8?q?Handle=20an=20overflow=20case=20(PR70498,=20pat?=
=?UTF-8?q?ch=20by=20Marcel=20B=C3=B6hme).?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
PR c++/70498
* cplus-dem.c (gnu_special): Handle case where consume_count returns
-1.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@234828 138bc75d-0d04-0410-961f-82ee72b054a4
Upstream-Status: Backport
CVE: CVE-2016-4489
Signed-off-by: Armin Kuster <akuster@mvista.com>
---
libiberty/ChangeLog | 6 ++++++
libiberty/cplus-dem.c | 5 +++++
2 files changed, 11 insertions(+)
Index: gcc-5.3.0/libiberty/ChangeLog
===================================================================
--- gcc-5.3.0.orig/libiberty/ChangeLog
+++ gcc-5.3.0/libiberty/ChangeLog
@@ -1,3 +1,9 @@
+2016-04-08 Marcel Böhme <boehme.marcel@gmail.com>
+
+ PR c++/70498
+ * cplus-dem.c (gnu_special): Handle case where consume_count returns
+ -1.
+
2016-03-31 Mikhail Maltsev <maltsevm@gmail.com>
Marcel Bohme boehme.marcel@gmail.com
Index: gcc-5.3.0/libiberty/cplus-dem.c
===================================================================
--- gcc-5.3.0.orig/libiberty/cplus-dem.c
+++ gcc-5.3.0/libiberty/cplus-dem.c
@@ -3001,6 +3001,11 @@ gnu_special (struct work_stuff *work, co
success = 1;
break;
}
+ else if (n == -1)
+ {
+ success = 0;
+ break;
+ }
}
else
{