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.
This commit is contained in:
Nick Clifton 2016-03-22 13:25:22 +00:00
parent 4153b6dbb0
commit 34b9f7292f
2 changed files with 10 additions and 1 deletions

View File

@ -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>

View File

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