Prevent illegal memory accesses when attempting to read excessively large COFF line...
[deliverable/binutils-gdb.git] / bfd / coffcode.h
index 21308de8c31351da3694b2790b7b99e54b77188c..6da0afa26d29dd27dc1fc741467205c00fbd36e3 100644 (file)
@@ -4578,6 +4578,14 @@ coff_slurp_line_table (bfd *abfd, asection *asect)
 
   BFD_ASSERT (asect->lineno == NULL);
 
+  if (asect->lineno_count > asect->size)
+    {
+      _bfd_error_handler
+       (_("%B: warning: line number count (%#lx) exceeds section size (%#lx)"),
+        abfd, (unsigned long) asect->lineno_count, (unsigned long) asect->size);
+      return FALSE;
+    }
+
   amt = ((bfd_size_type) asect->lineno_count + 1) * sizeof (alent);
   lineno_cache = (alent *) bfd_alloc (abfd, amt);
   if (lineno_cache == NULL)
This page took 0.023496 seconds and 4 git commands to generate.