diff --git a/kernel/bpf/verifier.c b/kernel/bpf/verifier.c index af7126be07c61893e92ea6bcfdf41e9658282c06..9b5c7a27792f0df250fd2dc5bb8e6a095aceffd8 100644 --- a/kernel/bpf/verifier.c +++ b/kernel/bpf/verifier.c @@ -2327,7 +2327,9 @@ static int check_stack_write_fixed_off(struct bpf_verifier_env *env, bool sanitize = reg && is_spillable_regtype(reg->type); for (i = 0; i < size; i++) { - if (state->stack[spi].slot_type[i] == STACK_INVALID) { + u8 type = state->stack[spi].slot_type[i]; + + if (type != STACK_MISC && type != STACK_ZERO) { sanitize = true; break; }