This is the mail archive of the binutils-cvs@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[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))			\


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]