summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLiping Zhang <zlpnobody@gmail.com>2016-11-21 21:18:23 +0800
committerPablo Neira Ayuso <pablo@netfilter.org>2016-11-24 14:43:35 +0100
commit49cdc4c74918a5576cb93b679629714d8a9ef399 (patch)
treef5b8f372a50787f8ca8b1d9aad1de6f8ed0eab33
parentd3e2a1110cae6ee5eeb1f9a97addf03e974f12e6 (diff)
downloadlinux-49cdc4c74918a5576cb93b679629714d8a9ef399.tar.gz
linux-49cdc4c74918a5576cb93b679629714d8a9ef399.tar.bz2
linux-49cdc4c74918a5576cb93b679629714d8a9ef399.zip
netfilter: nft_range: add the missing NULL pointer check
Otherwise, kernel panic will happen if the user does not specify the related attributes. Fixes: 0f3cd9b36977 ("netfilter: nf_tables: add range expression") Signed-off-by: Liping Zhang <zlpnobody@gmail.com> Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
-rw-r--r--net/netfilter/nft_range.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/net/netfilter/nft_range.c b/net/netfilter/nft_range.c
index fbc88009ca2e..8f0aaaea1376 100644
--- a/net/netfilter/nft_range.c
+++ b/net/netfilter/nft_range.c
@@ -59,6 +59,12 @@ static int nft_range_init(const struct nft_ctx *ctx, const struct nft_expr *expr
int err;
u32 op;
+ if (!tb[NFTA_RANGE_SREG] ||
+ !tb[NFTA_RANGE_OP] ||
+ !tb[NFTA_RANGE_FROM_DATA] ||
+ !tb[NFTA_RANGE_TO_DATA])
+ return -EINVAL;
+
err = nft_data_init(NULL, &priv->data_from, sizeof(priv->data_from),
&desc_from, tb[NFTA_RANGE_FROM_DATA]);
if (err < 0)