propagate_to_outer_instance() calls get_outer_instance() and then uses the returned pointer to reset/commit stack write marks. When get_outer_instance() fails (e.g., __lookup_instance() returns -ENOMEM), it may return an ERR_PTR. Without a check, the code dereferences this error pointer. Protect the call with IS_ERR() and propagate the error. Fixes: b3698c356ad9 ("bpf: callchain sensitive stack liveness tracking using CFG") Reported-by: kernel-patches-review-bot (https://github.com/kernel-patches/bpf/pull/10006#issuecomment-3409419240) Signed-off-by: Shardul Bankar --- kernel/bpf/liveness.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/kernel/bpf/liveness.c b/kernel/bpf/liveness.c index 3c611aba7f52..ae31f9ee4994 100644 --- a/kernel/bpf/liveness.c +++ b/kernel/bpf/liveness.c @@ -522,6 +522,8 @@ static int propagate_to_outer_instance(struct bpf_verifier_env *env, this_subprog_start = callchain_subprog_start(callchain); outer_instance = get_outer_instance(env, instance); + if (IS_ERR(outer_instance)) + return PTR_ERR(outer_instance); callsite = callchain->callsites[callchain->curframe - 1]; reset_stack_write_marks(env, outer_instance, callsite); -- 2.34.1