]> git.baikalelectronics.ru Git - kernel.git/commit
ipc ns: fix memory leak (idr)
authorSerge E. Hallyn <serue@us.ibm.com>
Wed, 16 Dec 2009 00:47:27 +0000 (16:47 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Wed, 16 Dec 2009 15:20:09 +0000 (07:20 -0800)
commit319f73c029f2e8a65eeec572e5fdea6c6a601a4b
treeb07d1033d8980256d596686d75c2207b1f2cce0a
parent21f0e36415101d4157d313280c3c70ec41e1375a
ipc ns: fix memory leak (idr)

We have apparently had a memory leak since
7ed8208531b718fd349215522b2d8ef47ce4ed1c "ipc: store ipcs into IDRs" in
2007.  The idr of which 3 exist for each ipc namespace is never freed.

This patch simply frees them when the ipcns is freed.  I don't believe any
idr_remove() are done from rcu (and could therefore be delayed until after
this idr_destroy()), so the patch should be safe.  Some quick testing
showed no harm, and the memory leak fixed.

Caught by kmemleak.

Signed-off-by: Serge E. Hallyn <serue@us.ibm.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
ipc/msg.c
ipc/sem.c
ipc/shm.c