+2023-06-19 Nick Clifton <nickc@redhat.com>
+
+ PR 30560
+ * elf64-x86-64.c (elf_x86_64_relocate_section): Add more checks
+ for a valid relocation offset.
+
2023-06-07 Nick Clifton <nickc@redhat.com>
PR 30499
{
bfd_vma roff = rel->r_offset;
+ if (roff >= input_section->size)
+ goto corrupt_input;
+
BFD_ASSERT (! unresolved_reloc);
if (r_type == R_X86_64_TLSGD)
int largepic = 0;
if (ABI_64_P (output_bfd))
{
+ if (roff + 5 >= input_section->size)
+ goto corrupt_input;
if (contents[roff + 5] == 0xb8)
{
if (roff < 3
"\x64\x8b\x04\x25\0\0\0\0\x48\x8d\x80\0\0\0",
15);
}
+
+ if (roff + 8 + largepic >= input_section->size)
+ goto corrupt_input;
+
bfd_put_32 (output_bfd,
elf_x86_64_tpoff (info, relocation),
contents + roff + 8 + largepic);
}
if (prefix)
{
+ if (roff + 2 >= input_section->size)
+ goto corrupt_input;
+
bfd_put_8 (output_bfd, 0x0f, contents + roff);
bfd_put_8 (output_bfd, 0x1f, contents + roff + 1);
bfd_put_8 (output_bfd, 0x00, contents + roff + 2);
}
else
{
+ if (roff + 1 >= input_section->size)
+ goto corrupt_input;
+
bfd_put_8 (output_bfd, 0x66, contents + roff);
bfd_put_8 (output_bfd, 0x90, contents + roff + 1);
}