From: Nick Clifton Date: Thu, 22 Aug 2019 12:11:18 +0000 (+0100) Subject: Prevent a floating point exception in the dwarf parser when a CU or TU table does... X-Git-Url: http://drtracing.org/?a=commitdiff_plain;h=4ac948a0447f1abc9bc3b2c38363e883b1b06634;p=deliverable%2Fbinutils-gdb.git 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. --- diff --git a/binutils/dwarf.c b/binutils/dwarf.c index e792a17018..b36406c0e3 100644 --- a/binutils/dwarf.c +++ b/binutils/dwarf.c @@ -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);