diff options
author | Arnaldo Carvalho de Melo <acme@ghostprotocols.net> | 2005-04-20 01:41:54 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2005-04-20 01:41:54 -0400 |
commit | 88a66858253c57334a519a77187234867bc8605c (patch) | |
tree | 0ed43178152af4eff13943540aa7e4ec9f3658fb /net/core/sock.c | |
parent | 9c2b3328f74800bb370d08bb3a4255d5fe833e94 (diff) |
[SOCK]: on failure free the sock from the right place
Signed-off-by: Arnaldo Carvalho de Melo <acme@ghostprotocols.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/core/sock.c')
-rw-r--r-- | net/core/sock.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/net/core/sock.c b/net/core/sock.c index f52c87a9268a..4df4fa3c5de0 100644 --- a/net/core/sock.c +++ b/net/core/sock.c | |||
@@ -641,7 +641,10 @@ struct sock *sk_alloc(int family, int priority, struct proto *prot, int zero_it) | |||
641 | } | 641 | } |
642 | 642 | ||
643 | if (security_sk_alloc(sk, family, priority)) { | 643 | if (security_sk_alloc(sk, family, priority)) { |
644 | kmem_cache_free(slab, sk); | 644 | if (slab != NULL) |
645 | kmem_cache_free(slab, sk); | ||
646 | else | ||
647 | kfree(sk); | ||
645 | sk = NULL; | 648 | sk = NULL; |
646 | } else | 649 | } else |
647 | __module_get(prot->owner); | 650 | __module_get(prot->owner); |