slub: fix per cpu kmem_cache_cpu array memory leak
authorDavid Rientjes <rientjes@google.com>
Wed, 28 Jan 2009 02:59:46 +0000 (18:59 -0800)
committerPekka Enberg <penberg@cs.helsinki.fi>
Wed, 28 Jan 2009 08:43:42 +0000 (10:43 +0200)
commit3718909448116bf4411445468c58acc946379f92
tree77d34de16274c12fb2bdcc946379a1c667f5671c
parenta6525042bfdfcab128bd91fad264de10fd24a55e
slub: fix per cpu kmem_cache_cpu array memory leak

The per cpu array of kmem_cache_cpu structures accomodates
NR_KMEM_CACHE_CPU such structs.

When this array overflows and a struct is allocated by kmalloc(), it may
have an address at the upper bound of this array.  If this happens, it
does not get freed and the per cpu kmem_cache_cpu_free pointer will be out
of bounds after kmem_cache_destroy() or cpu offlining.

Cc: Christoph Lameter <cl@linux-foundation.org>
Signed-off-by: David Rientjes <rientjes@google.com>
Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
mm/slub.c