diff options
author | Liping Zhang <zlpnobody@gmail.com> | 2016-11-21 21:18:23 +0800 |
---|---|---|
committer | Pablo Neira Ayuso <pablo@netfilter.org> | 2016-11-24 14:43:35 +0100 |
commit | 49cdc4c74918a5576cb93b679629714d8a9ef399 (patch) | |
tree | f5b8f372a50787f8ca8b1d9aad1de6f8ed0eab33 | |
parent | d3e2a1110cae6ee5eeb1f9a97addf03e974f12e6 (diff) | |
download | linux-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.c | 6 |
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) |