summaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorSabrina Dubroca <sd@queasysnail.net>2014-10-21 11:08:21 +0200
committerLuis Henriques <luis.henriques@canonical.com>2014-11-14 15:20:04 +0000
commit6f58d06bb5c0c9466edc90e917910058c7728e4a (patch)
tree2c88ce85e348eb7debc232a452531c680a615be1 /net
parent4d7f8c90dda8d458b4ad169090d4fe2ef0e80a51 (diff)
downloadlinux-stable-6f58d06bb5c0c9466edc90e917910058c7728e4a.tar.gz
linux-stable-6f58d06bb5c0c9466edc90e917910058c7728e4a.tar.bz2
linux-stable-6f58d06bb5c0c9466edc90e917910058c7728e4a.zip
netfilter: nf_tables: check for NULL in nf_tables_newchain pcpu stats allocation
commit c123bb7163043bb8f33858cf8e45b01c17dbd171 upstream. alloc_percpu returns NULL on failure, not a negative error code. Fixes: ff3cd7b3c922 ("netfilter: nf_tables: refactor chain statistic routines") Signed-off-by: Sabrina Dubroca <sd@queasysnail.net> Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org> Signed-off-by: Luis Henriques <luis.henriques@canonical.com>
Diffstat (limited to 'net')
-rw-r--r--net/netfilter/nf_tables_api.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/net/netfilter/nf_tables_api.c b/net/netfilter/nf_tables_api.c
index 62101ed0d2af..594afb3e7c40 100644
--- a/net/netfilter/nf_tables_api.c
+++ b/net/netfilter/nf_tables_api.c
@@ -1102,10 +1102,10 @@ static int nf_tables_newchain(struct sock *nlsk, struct sk_buff *skb,
basechain->stats = stats;
} else {
stats = netdev_alloc_pcpu_stats(struct nft_stats);
- if (IS_ERR(stats)) {
+ if (stats == NULL) {
module_put(type->owner);
kfree(basechain);
- return PTR_ERR(stats);
+ return -ENOMEM;
}
rcu_assign_pointer(basechain->stats, stats);
}