forked from Minki/linux
bpf: don't check spilled reg state for non-STACK_SPILLed type slots
spilled_regs[] state is only used for stack slots of type STACK_SPILL, never for STACK_MISC. Right now, in states_equal(), even if we have old and current stack state of type STACK_MISC, we compare spilled_regs[] for that particular offset. Just skip these like we do everywhere else. Signed-off-by: Daniel Borkmann <daniel@iogearbox.net> Acked-by: Alexei Starovoitov <ast@kernel.org> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
20b9d7ac48
commit
d25da6caa2
@ -2828,6 +2828,8 @@ static bool states_equal(struct bpf_verifier_env *env,
|
||||
return false;
|
||||
if (i % BPF_REG_SIZE)
|
||||
continue;
|
||||
if (old->stack_slot_type[i] != STACK_SPILL)
|
||||
continue;
|
||||
if (memcmp(&old->spilled_regs[i / BPF_REG_SIZE],
|
||||
&cur->spilled_regs[i / BPF_REG_SIZE],
|
||||
sizeof(old->spilled_regs[0])))
|
||||
|
Loading…
Reference in New Issue
Block a user