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:
parent
4153b6dbb0
commit
34b9f7292f
|
@ -1,5 +1,9 @@
|
||||||
2016-03-22 Nick Clifton <nickc@redhat.com>
|
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.
|
* configure: Regenerate.
|
||||||
|
|
||||||
2016-03-21 Andrew Burgess <andrew.burgess@embecosm.com>
|
2016-03-21 Andrew Burgess <andrew.burgess@embecosm.com>
|
||||||
|
|
|
@ -317,8 +317,13 @@ read_uleb128 (unsigned char * data,
|
||||||
#define SAFE_BYTE_GET(VAL, PTR, AMOUNT, END) \
|
#define SAFE_BYTE_GET(VAL, PTR, AMOUNT, END) \
|
||||||
do \
|
do \
|
||||||
{ \
|
{ \
|
||||||
int dummy [sizeof (VAL) < (AMOUNT) ? -1 : 1] ATTRIBUTE_UNUSED ; \
|
|
||||||
unsigned int amount = (AMOUNT); \
|
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) + amount) >= (END)) \
|
||||||
{ \
|
{ \
|
||||||
if ((PTR) < (END)) \
|
if ((PTR) < (END)) \
|
||||||
|
|
Loading…
Reference in New Issue