From 8c68d88cc44ec476125e30835f79865e8eb32358 Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Sat, 13 Aug 2022 14:05:24 +0930 Subject: [PATCH] asan: NULL dereference in som_set_reloc_info * som.c (som_set_reloc_info): Ignore non-existent previous fixup references. --- bfd/som.c | 5 +++++ 1 file changed, 5 insertions(+) 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;