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:
Nick Clifton 2019-08-22 13:11:18 +01:00
parent a3197745b1
commit 4ac948a044
1 changed files with 6 additions and 5 deletions

View File

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