[Devel] [PATCH] fix oops in checkpoint/restart error path

Dave Hansen dave at linux.vnet.ibm.com
Thu Oct 16 15:51:28 PDT 2008


The 'ctx' is kzmalloc()'d.  So, all its contents are zeroed.
It has a list_head, which is walked during cr_ctx_free().
list_for_each() on a non-initalized list_head is bad.  Whoops.


Signed-off-by: Dave Hansen <dave at linux.vnet.ibm.com>
---

 linux-2.6.git-dave/checkpoint/sys.c |    1 +
 1 file changed, 1 insertion(+)

diff -puN checkpoint/sys.c~fix-cr-oops0 checkpoint/sys.c
--- linux-2.6.git/checkpoint/sys.c~fix-cr-oops0	2008-10-16 15:48:18.000000000 -0700
+++ linux-2.6.git-dave/checkpoint/sys.c	2008-10-16 15:48:35.000000000 -0700
@@ -179,6 +179,7 @@ struct cr_ctx *cr_ctx_alloc(pid_t pid, i
 	ctx = kzalloc(sizeof(*ctx), GFP_KERNEL);
 	if (!ctx)
 		return ERR_PTR(-ENOMEM);
+	INIT_LIST_HEAD(&ctx->pgarr_list);
 
 	ctx->file = fget(fd);
 	if (!ctx->file) {
diff -L checkpoint/ckpt_mem.h -puN /dev/null /dev/null
_
_______________________________________________
Containers mailing list
Containers at lists.linux-foundation.org
https://lists.linux-foundation.org/mailman/listinfo/containers




More information about the Devel mailing list