Thread (4 messages) flat view 4 messages, 3 authors, 2004-06-21

Re: [patch-kj] net/ipv4/fib_hash.c: check kmem_cache_create()

From: maximilian attems <hidden>
Date: 2004-06-21 20:04:20

On Tue, 22 Jun 2004, YOSHIFUJI Hideaki / ?$B5HF#1QL@ wrote:
quoted hunk ↗ jump to hunk
In article [ref] (at Mon, 21 Jun 2004 19:18:32 +0200), maximilian attems [off-list ref] says:
quoted
From: Francois Romieu <romieu@fr.zoreil.com>

kmem_cache_create leak.

Note: fib_hash_init() can be called many times.

Signed-off-by: Maximilian Attems <redacted>
Please tell us what kind of leakage do you see?
Is it just enough to return NULL if kmem_cache_create() fails
like this?
--- a/net/ipv4/fib_hash.c	10 Nov 2003 23:40:57 -0000	1.1.1.13
+++ b/net/ipv4/fib_hash.c	21 Jun 2004 18:19:16 -0000
@@ -871,12 +871,14 @@
 {
 	struct fib_table *tb;
 
-	if (fn_hash_kmem == NULL)
+	if (fn_hash_kmem == NULL) {
 		fn_hash_kmem = kmem_cache_create("ip_fib_hash",
 						 sizeof(struct fib_node),
 						 0, SLAB_HWCACHE_ALIGN,
 						 NULL, NULL);
-
+		if (fn_hash_kmem == NULL)
+			return NULL;
+	}
 	tb = kmalloc(sizeof(struct fib_table) + sizeof(struct fn_hash), GFP_KERNEL);
 	if (tb == NULL)
 		return NULL;
doesn't seem to be enough,
because if (tb == NULL) fn_hash_kmem won't be freed, 
or am i overseeing something?

a++ maks
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help