Tidy commit 49910fd88dcd

Pointer range checking is UB if the values compared are outside the
underlying array elements (plus one).

	* dwarf2.c (read_address): Remove accidental commit.
	(read_ranges): Compare offset rather than pointers.
This commit is contained in:
Alan Modra
2021-07-10 10:07:17 +09:30
parent 9039747fb4
commit f8dd364658
2 changed files with 8 additions and 6 deletions

View File

@ -1,3 +1,8 @@
2021-07-10 Alan Modra <amodra@gmail.com>
* dwarf2.c (read_address): Remove accidental commit.
(read_ranges): Compare offset rather than pointers.
2021-07-08 Nick Clifton <nickc@redhat.com> 2021-07-08 Nick Clifton <nickc@redhat.com>
* po/pt.po: Updated Portuguese translation. * po/pt.po: Updated Portuguese translation.

View File

@ -909,8 +909,7 @@ read_address (struct comp_unit *unit, bfd_byte **ptr, bfd_byte *buf_end)
if (bfd_get_flavour (unit->abfd) == bfd_target_elf_flavour) if (bfd_get_flavour (unit->abfd) == bfd_target_elf_flavour)
signed_vma = get_elf_backend_data (unit->abfd)->sign_extend_vma; signed_vma = get_elf_backend_data (unit->abfd)->sign_extend_vma;
if (unit->addr_size > (size_t) (buf_end - buf) if (unit->addr_size > (size_t) (buf_end - buf))
|| (buf > buf_end))
{ {
*ptr = buf_end; *ptr = buf_end;
return 0; return 0;
@ -3094,12 +3093,10 @@ read_ranges (struct comp_unit *unit, struct arange *arange,
return false; return false;
} }
if (offset > unit->file->dwarf_ranges_size)
return false;
ranges_ptr = unit->file->dwarf_ranges_buffer + offset; ranges_ptr = unit->file->dwarf_ranges_buffer + offset;
if (ranges_ptr < unit->file->dwarf_ranges_buffer)
return false;
ranges_end = unit->file->dwarf_ranges_buffer + unit->file->dwarf_ranges_size; ranges_end = unit->file->dwarf_ranges_buffer + unit->file->dwarf_ranges_size;
if (ranges_ptr >= ranges_end)
return false;
for (;;) for (;;)
{ {