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