On 02/17, Yafang Shao wrote: > > On Sat, Feb 17, 2024 at 8:05 PM Oleg Nesterov <oleg@xxxxxxxxxx> wrote: > > > > > Fixes: ac8148d957f5 ("bpf: bpf_iter_task_next: use next_task(kit->task) rather than next_task(kit->pos)") > > > > Confused... > > > > Does this mean that bpf_iter_task_next() (the only user of ->pos) can be > > called even if bpf_iter_task_new() returns -EINVAL ? > > Right. The bpf_for_each() doesn't check the return value of bpf_iter_task_new > (), see also https://lore.kernel.org/bpf/20240208090906.56337-4-laoar.shao@xxxxxxxxx/ > > Even if we check the return value of bpf_iter_task_new() in > bpf_for_each(), we still need to fix it in the kernel. Hmm, OK. Somehow I naively thought there must be an in-kernel check that would that prevent bpf_iter_task_next() if bpf_iter_task_new() failed. Thanks for your explanations. FWIW, Acked-by: Oleg Nesterov <oleg@xxxxxxxxxx>