diff --git a/kernel/bpf/verifier.c b/kernel/bpf/verifier.c index d1f1c7ad92f2db359e89227c4f5e65a32a0b59bd..8366dd81a0d4db9d2d764eca856092668187c0df 100644 --- a/kernel/bpf/verifier.c +++ b/kernel/bpf/verifier.c @@ -7449,9 +7449,10 @@ static int process_iter_next_call(struct bpf_verifier_env *env, int insn_idx, if (cur_iter->iter.state == BPF_ITER_STATE_ACTIVE) { /* branch out active iter state */ - queued_st = push_stack(env, insn_idx + 1, insn_idx, false); - if (!queued_st) - return -ENOMEM; + int err = push_stack(env, insn_idx + 1, insn_idx, false, &queued_st); + if (err) + return err; + BUG_ON(!queued_st); queued_iter = &queued_st->frame[iter_frameno]->stack[iter_spi].spilled_ptr; queued_iter->iter.state = BPF_ITER_STATE_ACTIVE;