libunwind: Security Advisory - libunwind - CVE-2015-3239

libunwind: Invalid dwarf opcodes can cause references beyond the end of
the array

Off-by-one error in the dwarf_to_unw_regnum function in include/dwarf_i.h
 in libunwind 1.1 allows local users to have unspecified impact via
invalid dwarf opcodes.

(From OE-Core master rev: 9c4e7f5c009b076b0bc638a02fcf3d96c362e7eb)

(From OE-Core rev: 38de3cd2fcc5e2c79dcf1c864c84f8e712111e5d)

Signed-off-by: Li Zhou <li.zhou@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Li Zhou
2015-09-02 11:03:39 +08:00
committed by Richard Purdie
parent 174b15c2c0
commit 4ce2a556ca
2 changed files with 30 additions and 0 deletions

View File

@@ -0,0 +1,29 @@
From 396b6c7ab737e2bff244d640601c436a26260ca1 Mon Sep 17 00:00:00 2001
From: Arun Sharma <arun@sharma-home.net>
Date: Fri, 19 Jun 2015 19:47:22 -0700
Subject: [PATCH] Invalid dwarf opcodes can cause references beyond the end of
the array.
Upstream-Status: backport
Signed-off-by: Li Zhou <li.zhou@windriver.com>
---
include/dwarf_i.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/include/dwarf_i.h b/include/dwarf_i.h
index 1e6231e..4a02a7d 100644
--- a/include/dwarf_i.h
+++ b/include/dwarf_i.h
@@ -20,7 +20,7 @@
extern const uint8_t dwarf_to_unw_regnum_map[DWARF_REGNUM_MAP_LENGTH];
/* REG is evaluated multiple times; it better be side-effects free! */
# define dwarf_to_unw_regnum(reg) \
- (((reg) <= DWARF_REGNUM_MAP_LENGTH) ? dwarf_to_unw_regnum_map[reg] : 0)
+ (((reg) < DWARF_REGNUM_MAP_LENGTH) ? dwarf_to_unw_regnum_map[reg] : 0)
#endif
#ifdef UNW_LOCAL_ONLY
--
1.7.9.5

View File

@@ -5,6 +5,7 @@ SRC_URI += "\
file://AArch64-port.patch \
file://Fix-test-case-link-failure-on-PowerPC-systems-with-Altivec.patch \
file://Link-libunwind-to-libgcc_s-rather-than-libgcc.patch \
file://0001-Invalid-dwarf-opcodes-can-cause-references-beyond-th.patch \
"
SRC_URI[md5sum] = "fb4ea2f6fbbe45bf032cd36e586883ce"