From: Sukadev Bhattiprolu <[email protected]>
Subject: [PATCH 5/5] 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 <[email protected]>
---
 checkpoint/checkpoint.c |    5 ++++-
 1 files changed, 4 insertions(+), 1 deletions(-)

diff --git a/checkpoint/checkpoint.c b/checkpoint/checkpoint.c
index 9189abb..cfa6b4f 100644
--- a/checkpoint/checkpoint.c
+++ b/checkpoint/checkpoint.c
@@ -19,6 +19,7 @@
 #include <linux/mount.h>
 #include <linux/utsname.h>
 #include <linux/magic.h>
+#include <linux/freezer.h>
 #include <linux/checkpoint.h>
 #include <linux/checkpoint_hdr.h>
 
@@ -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

_______________________________________________
Containers mailing list
[email protected]
https://lists.linux-foundation.org/mailman/listinfo/containers

_______________________________________________
Devel mailing list
[email protected]
https://openvz.org/mailman/listinfo/devel

Reply via email to