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;