From c7e12b838989b0e432c7a1cdf1e6c6fd936007f6 Mon Sep 17 00:00:00 2001 From: Pavel Emelianov Date: Thu, 2 Nov 2006 22:07:03 -0800 Subject: [PATCH] Fix ipc entries removal Fix two issuses related to ipc_ids->entries freeing. 1. When freeing ipc namespace we need to free entries allocated with ipc_init_ids(). 2. When removing old entries in grow_ary() ipc_rcu_putref() may be called on entries set to &ids->nullentry earlier in ipc_init_ids(). This is almost impossible without namespaces, but with them this situation becomes possible. Found during OpenVZ testing after obvious leaks in beancounters. Signed-off-by: Pavel Emelianov Cc: Kirill Korotaev Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds --- ipc/msg.c | 1 + 1 file changed, 1 insertion(+) (limited to 'ipc/msg.c') diff --git a/ipc/msg.c b/ipc/msg.c index 5b213d952545..600e06f943a6 100644 --- a/ipc/msg.c +++ b/ipc/msg.c @@ -124,6 +124,7 @@ void msg_exit_ns(struct ipc_namespace *ns) } mutex_unlock(&msg_ids(ns).mutex); + ipc_fini_ids(ns->ids[IPC_MSG_IDS]); kfree(ns->ids[IPC_MSG_IDS]); ns->ids[IPC_MSG_IDS] = NULL; } -- cgit v1.2.3