This is the mail archive of the
binutils-cvs@sourceware.org
mailing list for the binutils project.
[binutils-gdb] Fix unbounded stack usage warning inside the SAFE_BYTE_GET macro.
- From: Nick Clifton <nickc at sourceware dot org>
- To: bfd-cvs at sourceware dot org
- Date: 22 Mar 2016 13:26:12 -0000
- Subject: [binutils-gdb] Fix unbounded stack usage warning inside the SAFE_BYTE_GET macro.
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=34b9f7292f9c75d09c169a293c1f021eb97517ca
commit 34b9f7292f9c75d09c169a293c1f021eb97517ca
Author: Nick Clifton <nickc@redhat.com>
Date: Tue Mar 22 13:25:22 2016 +0000
Fix unbounded stack usage warning inside the SAFE_BYTE_GET macro.
PR 19851
binutils * dwarf.c (SAFE_BYTE_GET): Replace local dynamic array allocation
with run time size check.
Diff:
---
binutils/ChangeLog | 4 ++++
binutils/dwarf.c | 7 ++++++-
2 files changed, 10 insertions(+), 1 deletion(-)
diff --git a/binutils/ChangeLog b/binutils/ChangeLog
index 0694a58..75d7170 100644
--- a/binutils/ChangeLog
+++ b/binutils/ChangeLog
@@ -1,5 +1,9 @@
2016-03-22 Nick Clifton <nickc@redhat.com>
+ PR 19851
+ * dwarf.c (SAFE_BYTE_GET): Replace local dynamic array allocation
+ with run time size check.
+
* configure: Regenerate.
2016-03-21 Andrew Burgess <andrew.burgess@embecosm.com>
diff --git a/binutils/dwarf.c b/binutils/dwarf.c
index 85d18f3..086df4b 100644
--- a/binutils/dwarf.c
+++ b/binutils/dwarf.c
@@ -317,8 +317,13 @@ read_uleb128 (unsigned char * data,
#define SAFE_BYTE_GET(VAL, PTR, AMOUNT, END) \
do \
{ \
- int dummy [sizeof (VAL) < (AMOUNT) ? -1 : 1] ATTRIBUTE_UNUSED ; \
unsigned int amount = (AMOUNT); \
+ if (sizeof (VAL) < amount) \
+ { \
+ error (_("internal error: attempt to read %d bytes of data in to %d sized variable"),\
+ amount, (int) sizeof (VAL)); \
+ amount = sizeof (VAL); \
+ } \
if (((PTR) + amount) >= (END)) \
{ \
if ((PTR) < (END)) \