mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-12-15 04:31:49 +08:00
Prevent a floating point exception in the dwarf parser when a CU or TU table does not have any columns.
PR 24921 * dwarf.c (process_cu_tu_index): Handle the case where a table does not have any columns.
This commit is contained in:
parent
a3197745b1
commit
4ac948a044
@ -9411,11 +9411,12 @@ process_cu_tu_index (struct dwarf_section *section, int do_display)
|
||||
/* PR 17531: file: 0dd159bf.
|
||||
Check for integer overflow (can occur when size_t is 32-bit)
|
||||
with overlarge ncols or nused values. */
|
||||
if ((size_t) ncols * 4 / 4 != ncols
|
||||
|| (size_t) nused * ncols * 4 / ((size_t) ncols * 4) != nused
|
||||
|| poffsets < ppool || poffsets > limit
|
||||
|| psizes < poffsets || psizes > limit
|
||||
|| pend < psizes || pend > limit)
|
||||
if (ncols > 0
|
||||
&& ((size_t) ncols * 4 / 4 != ncols
|
||||
|| (size_t) nused * ncols * 4 / ((size_t) ncols * 4) != nused
|
||||
|| poffsets < ppool || poffsets > limit
|
||||
|| psizes < poffsets || psizes > limit
|
||||
|| pend < psizes || pend > limit))
|
||||
{
|
||||
warn (_("Section %s too small for offset and size tables\n"),
|
||||
section->name);
|
||||
|
Loading…
Reference in New Issue
Block a user