From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Serge E. Hallyn" Subject: Re: [PATCH] Deny external checkpoint unless frozen Date: Mon, 23 Feb 2009 17:04:38 -0600 Message-ID: <20090223230438.GA2590@us.ibm.com> References: <20090221201317.GB13532@us.ibm.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Content-Disposition: inline In-Reply-To: <20090221201317.GB13532-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: containers-bounces-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org Errors-To: containers-bounces-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org To: Sukadev Bhattiprolu Cc: Containers , "David C. Hansen" List-Id: containers.vger.kernel.org Quoting Sukadev Bhattiprolu (sukadev-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org): > > From: Sukadev Bhattiprolu > Date: Sat, 21 Feb 2009 11:17:07 -0800 > Subject: [PATCH] Deny external checkpoint unless task is frozen > > Remove a 'FIXME' and ensure that the tasks we are checkpointing are > frozen unless its a self-checkpoint. > > Signed-off-by: Sukadev Bhattiprolu Agreed. I personally would like to just get rid of support for t==current, but don't expect to get anywhere with that argument :) Acked-by: Serge Hallyn > --- > checkpoint/checkpoint.c | 5 ++++- > 1 files changed, 4 insertions(+), 1 deletions(-) > > diff --git a/checkpoint/checkpoint.c b/checkpoint/checkpoint.c > index 2bbb409..023bd9d 100644 > --- a/checkpoint/checkpoint.c > +++ b/checkpoint/checkpoint.c > @@ -19,6 +19,7 @@ > #include > #include > #include > +#include > #include > #include > > @@ -280,7 +281,9 @@ static int cr_may_checkpoint_task(struct task_struct *t, struct cr_ctx *ctx) > if (!ptrace_may_access(t, PTRACE_MODE_READ)) > return -EPERM; > > - /* FIXME: verify that the task is frozen (unless self) */ > + /* verify that the task is frozen (unless self) */ > + if (t != current && !frozen(t)) > + return -EBUSY; > > /* FIXME: change this for nested containers */ > if (task_nsproxy(t) != ctx->root_nsproxy) > -- > 1.5.2.5