From: Alan Modra Date: Sat, 13 Aug 2022 04:35:24 +0000 (+0930) Subject: asan: NULL dereference in som_set_reloc_info X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=8c68d88cc44ec476125e30835f79865e8eb32358;p=binutils-gdb.git asan: NULL dereference in som_set_reloc_info * som.c (som_set_reloc_info): Ignore non-existent previous fixup references. --- diff --git a/bfd/som.c b/bfd/som.c index d33ad67561a..c22f13b5a4c 100644 --- a/bfd/som.c +++ b/bfd/som.c @@ -4978,6 +4978,11 @@ som_set_reloc_info (unsigned char *fixup, /* Handle a request for a previous fixup. */ if (*fp->format == 'P') { + if (!reloc_queue[fp->D].reloc) + /* The back-reference doesn't exist. This is a broken + object file, likely fuzzed. Just ignore the fixup. */ + continue; + /* Get pointer to the beginning of the prev fixup, move the repeated fixup to the head of the queue. */ fixup = reloc_queue[fp->D].reloc;