]> code.ossystems Code Review - openembedded-core.git/commit
gcc: Fix CVE-2016-6131 in libiberty
authorYuanjie Huang <yuanjie.huang@windriver.com>
Wed, 15 Feb 2017 09:38:00 +0000 (01:38 -0800)
committerMartin Jansa <Martin.Jansa@gmail.com>
Sat, 10 Mar 2018 23:27:53 +0000 (23:27 +0000)
commitbe00ad34a3827a4205718609f349bc6e8a09733b
treeb43b0d75f7fb767e2dc123a4387c6f426943a601
parente54f26a0dbfc8de22ce8326ac77d1097d13f6e2c
gcc: Fix CVE-2016-6131 in libiberty

[NVD] -- https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2016-6131

The demangler in GNU Libiberty allows remote attackers to cause a denial
of service (infinite loop, stack overflow, and crash) via a cycle in the
references of remembered mangled types.

[BZ #71696] -- https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71696

2016-08-04  Marcel Böhme  <boehme.marcel@gmail.com>

PR c++/71696
* cplus-dem.c: Prevent infinite recursion when there is a cycle
in the referencing of remembered mangled types.
(work_stuff): New stack to keep track of the remembered mangled
types that are currently being processed.
(push_processed_type): New method to push currently processed
remembered type onto the stack.
(pop_processed_type): New method to pop currently processed
remembered type from the stack.
(work_stuff_copy_to_from): Copy values of new variables.
(delete_non_B_K_work_stuff): Free stack memory.
(demangle_args): Push/Pop currently processed remembered type.
(do_type): Do not demangle a cyclic reference and push/pop
referenced remembered type.

cherry-picked from commit of
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@239143 138bc75d-0d04-0410-961f-82ee72b054a4

(From OE-Core rev: 3c288b181a4cfecc80b48994f4dd2df285e4d1d0)

Signed-off-by: Yuanjie Huang <yuanjie.huang@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 96a16c4181d18b8580dad243350d589586cb2b07)
meta/recipes-devtools/gcc/gcc-5.4.inc
meta/recipes-devtools/gcc/gcc-5.4/CVE-2016-6131.patch [new file with mode: 0644]
meta/recipes-devtools/gcc/gcc-6.3.inc
meta/recipes-devtools/gcc/gcc-6.3/CVE-2016-6131.patch [new file with mode: 0644]