On Mon, Apr 11, 2016 at 04:35:44PM -0700, Andrey Vagin wrote: ... > +static int __taskdiag_dumpit(struct task_iter *iter, > + struct task_diag_cb *cb, struct task_struct > **start) > +{ > + struct user_namespace *userns = current_user_ns(); > + struct task_struct *task = *start; > + int rc; > + > + for (; task; task = iter_next(iter)) { > + if (!ptrace_may_access(task, PTRACE_MODE_READ_FSCREDS)) > + continue; > + > + rc = task_diag_fill(task, cb->resp, &iter->req, > + cb, iter->ns, userns); > + if (rc < 0) { > + if (rc != -EMSGSIZE) > + return rc; > + break; > + } > + } > + *start = task;
task = NULL always here? > + > + return 0; > +} Cyrill