diff options
-rw-r--r-- | binutils/coffgrok.c | 7 | ||||
-rw-r--r-- | binutils/dwarf.c | 2 |
2 files changed, 7 insertions, 2 deletions
diff --git a/binutils/coffgrok.c b/binutils/coffgrok.c index 5dc9558..2bbfdc4 100644 --- a/binutils/coffgrok.c +++ b/binutils/coffgrok.c @@ -668,8 +668,13 @@ do_define (unsigned int i, struct coff_scope *b) if (!is->init) { + long high = s->where->offset + s->type->size; + is->low = s->where->offset; - is->high = s->where->offset + s->type->size; + is->high = high; + /* PR 17512: file: 37e7a80d. */ + if (is->high != high) + fatal (_("Out of range type size: %u"), s->type->size); is->init = 1; is->parent = s->where->section; } diff --git a/binutils/dwarf.c b/binutils/dwarf.c index dad381f..936f634 100644 --- a/binutils/dwarf.c +++ b/binutils/dwarf.c @@ -284,7 +284,7 @@ read_leb128 (unsigned char *data, /* PR 17512: file: 0ca183b8. FIXME: Should we signal this error somehow ? */ - if (shift >= sizeof (result)) + if (shift >= sizeof (result) * 8) break; } |