aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--net/ipv4/netfilter/ip_conntrack_core.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/net/ipv4/netfilter/ip_conntrack_core.c b/net/ipv4/netfilter/ip_conntrack_core.c
index 9261388d5ac2..285743bfbed3 100644
--- a/net/ipv4/netfilter/ip_conntrack_core.c
+++ b/net/ipv4/netfilter/ip_conntrack_core.c
@@ -655,7 +655,7 @@ struct ip_conntrack *ip_conntrack_alloc(struct ip_conntrack_tuple *orig,
655 conntrack = kmem_cache_alloc(ip_conntrack_cachep, GFP_ATOMIC); 655 conntrack = kmem_cache_alloc(ip_conntrack_cachep, GFP_ATOMIC);
656 if (!conntrack) { 656 if (!conntrack) {
657 DEBUGP("Can't allocate conntrack.\n"); 657 DEBUGP("Can't allocate conntrack.\n");
658 return NULL; 658 return ERR_PTR(-ENOMEM);
659 } 659 }
660 660
661 memset(conntrack, 0, sizeof(*conntrack)); 661 memset(conntrack, 0, sizeof(*conntrack));
@@ -696,8 +696,9 @@ init_conntrack(struct ip_conntrack_tuple *tuple,
696 return NULL; 696 return NULL;
697 } 697 }
698 698
699 if (!(conntrack = ip_conntrack_alloc(tuple, &repl_tuple))) 699 conntrack = ip_conntrack_alloc(tuple, &repl_tuple);
700 return NULL; 700 if (conntrack == NULL || IS_ERR(conntrack))
701 return (struct ip_conntrack_tuple_hash *)conntrack;
701 702
702 if (!protocol->new(conntrack, skb)) { 703 if (!protocol->new(conntrack, skb)) {
703 ip_conntrack_free(conntrack); 704 ip_conntrack_free(conntrack);