aboutsummaryrefslogtreecommitdiffstats
path: root/include/net/timewait_sock.h
diff options
context:
space:
mode:
authorCatalin Marinas <catalin.marinas@arm.com>2008-11-21 19:45:22 -0500
committerDavid S. Miller <davem@davemloft.net>2008-11-21 19:45:22 -0500
commit7e56b5d698707a9934833c47b24d78fb0bcaf764 (patch)
tree949d9320501fa64e3710acda83487d4c74e52247 /include/net/timewait_sock.h
parent33cf71cee14743185305c61625c4544885055733 (diff)
net: Fix memory leak in the proto_register function
If the slub allocator is used, kmem_cache_create() may merge two or more kmem_cache's into one but the cache name pointer is not updated and kmem_cache_name() is no longer guaranteed to return the pointer passed to the former function. This patch stores the kmalloc'ed pointers in the corresponding request_sock_ops and timewait_sock_ops structures. Signed-off-by: Catalin Marinas <catalin.marinas@arm.com> Acked-by: Arnaldo Carvalho de Melo <acme@redhat.com> Reviewed-by: Christoph Lameter <cl@linux-foundation.org> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/net/timewait_sock.h')
-rw-r--r--include/net/timewait_sock.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/include/net/timewait_sock.h b/include/net/timewait_sock.h
index 1e1ee3253fd8..97c3b14da55d 100644
--- a/include/net/timewait_sock.h
+++ b/include/net/timewait_sock.h
@@ -16,6 +16,7 @@
16 16
17struct timewait_sock_ops { 17struct timewait_sock_ops {
18 struct kmem_cache *twsk_slab; 18 struct kmem_cache *twsk_slab;
19 char *twsk_slab_name;
19 unsigned int twsk_obj_size; 20 unsigned int twsk_obj_size;
20 int (*twsk_unique)(struct sock *sk, 21 int (*twsk_unique)(struct sock *sk,
21 struct sock *sktw, void *twp); 22 struct sock *sktw, void *twp);