bpf: Make bpf_for_each_spilled_reg consider narrow spills
authorMaxim Mikityanskiy <maxim@isovalent.com>
Mon, 8 Jan 2024 20:51:58 +0000 (22:51 +0200)
committerAlexei Starovoitov <ast@kernel.org>
Tue, 23 Jan 2024 22:40:22 +0000 (14:40 -0800)
commit32f55dd4add4df1a5bc8febc1fafd3086290dbf6
treefe863af03a5060bd15176ee4d484dba73e6c8919
parentc035b3e555b5642f786fb2d089a6ddf7b00eb374
bpf: Make bpf_for_each_spilled_reg consider narrow spills

Adjust the check in bpf_get_spilled_reg to take into account spilled
registers narrower than 64 bits. That allows find_equal_scalars to
properly adjust the range of all spilled registers that have the same
ID. Before this change, it was possible for a register and a spilled
register to have the same IDs but different ranges if the spill was
narrower than 64 bits and a range check was performed on the register.

Signed-off-by: Maxim Mikityanskiy <maxim@isovalent.com>
Acked-by: Eduard Zingerman <eddyz87@gmail.com>
Link: https://lore.kernel.org/r/20240108205209.838365-5-maxtram95@gmail.com
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
include/linux/bpf_verifier.h