Messages in this thread | | | Date | Tue, 12 Apr 2016 17:39:14 -0700 | From | Andrew Vagin <> | Subject | Re: [PATCH 04/15] task_diag: add a new interface to get information about tasks (v4) |
| |
On Tue, Apr 12, 2016 at 10:08:57AM +0300, Cyrill Gorcunov wrote: > 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;
task isn't NULL here
> > + } > > + } > > + *start = task; > > task = NULL always here?
No, it isn't if the loop is interrupted by break.
Thanks, Andrew
| |