]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
objtool: Fix reloc hash collision in find_reloc_by_dest_range()
authorJosh Poimboeuf <jpoimboe@kernel.org>
Tue, 21 Apr 2026 14:21:19 +0000 (07:21 -0700)
committerJosh Poimboeuf <jpoimboe@kernel.org>
Tue, 5 May 2026 04:16:02 +0000 (21:16 -0700)
commita375e327b63e0da29b82a92b569bfdf4628fa38a
treea19c34bff09902e0e55f85b821a319afb2794de2
parent5f49ec82b9f65507c262a6e3f1b53663f79eedce
objtool: Fix reloc hash collision in find_reloc_by_dest_range()

In find_reloc_by_dest_range(), hash collisions can cause a high-offset
relocation to appear when probing a low-offset hash bucket.

Only return early when the best match found so far genuinely belongs to
the current bucket (its offset is within the bucket's stride range).
Otherwise, continue scanning later buckets which may contain
lower-offset matches.

This ensures the first reloc in the range gets returned.

Fixes: 74b873e49d92 ("objtool: Optimize find_rela_by_dest_range()")
Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Acked-by: Song Liu <song@kernel.org>
Reviewed-by: Miroslav Benes <mbenes@suse.cz>
Signed-off-by: Josh Poimboeuf <jpoimboe@kernel.org>
tools/objtool/elf.c