diff options
author | Song Liu <song@kernel.org> | 2025-06-12 15:11:00 -0700 |
---|---|---|
committer | Alexei Starovoitov <ast@kernel.org> | 2025-06-12 16:53:40 -0700 |
commit | fa6932577c073497379a1f5901ea5b208a38da10 (patch) | |
tree | 01df58e007c7b2d496ab460921b4927838da50c0 | |
parent | 50034d93628143c747e90418b5bf7df6851ac612 (diff) |
bpf: Initialize used but uninit variable in propagate_liveness()
With input changed == NULL, a local variable is used for "changed".
Initialize tmp properly, so that it can be used in the following:
*changed |= err > 0;
Otherwise, UBSAN will complain:
UBSAN: invalid-load in kernel/bpf/verifier.c:18924:4
load of value <some random value> is not a valid value for type '_Bool'
Fixes: dfb2d4c64b82 ("bpf: set 'changed' status if propagate_liveness() did any updates")
Signed-off-by: Song Liu <song@kernel.org>
Acked-by: Eduard Zingerman <eddyz87@gmail.com>
Link: https://lore.kernel.org/r/20250612221100.2153401-1-song@kernel.org
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
-rw-r--r-- | kernel/bpf/verifier.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/kernel/bpf/verifier.c b/kernel/bpf/verifier.c index 14dd836acb13..c378074516cf 100644 --- a/kernel/bpf/verifier.c +++ b/kernel/bpf/verifier.c @@ -18900,7 +18900,7 @@ static int propagate_liveness(struct bpf_verifier_env *env, struct bpf_reg_state *state_reg, *parent_reg; struct bpf_func_state *state, *parent; int i, frame, err = 0; - bool tmp; + bool tmp = false; changed = changed ?: &tmp; if (vparent->curframe != vstate->curframe) { |