[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20160413003913.GB18121@gmail.com>
Date: Tue, 12 Apr 2016 17:39:14 -0700
From: Andrew Vagin <avagin@...il.com>
To: Cyrill Gorcunov <gorcunov@...il.com>
Cc: Andrey Vagin <avagin@...nvz.org>, linux-kernel@...r.kernel.org,
Oleg Nesterov <oleg@...hat.com>,
Andrew Morton <akpm@...ux-foundation.org>,
Pavel Emelyanov <xemul@...allels.com>,
Roger Luethi <rl@...lgate.ch>, Arnd Bergmann <arnd@...db.de>,
Arnaldo Carvalho de Melo <acme@...nel.org>,
David Ahern <dsahern@...il.com>,
Andy Lutomirski <luto@...capital.net>,
Pavel Odintsov <pavel.odintsov@...il.com>
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
Powered by blists - more mailing lists