netfilter: nf_tables: remove useless U8_MAX validation
authorLiping Zhang <zlpnobody@gmail.com>
Sat, 29 Oct 2016 13:56:27 +0000 (21:56 +0800)
committerPablo Neira Ayuso <pablo@netfilter.org>
Tue, 1 Nov 2016 19:50:32 +0000 (20:50 +0100)
After call nft_data_init, size is already validated and desc.len will
not exceed the sizeof(struct nft_data), i.e. 16 bytes. So it will never
exceed U8_MAX.

Furthermore, in nft_immediate_init, we forget to call nft_data_uninit
when desc.len exceeds U8_MAX, although this will not happen, but it's
a logical mistake.

Now remove these redundant validation introduced by commit 36b701fae12a
("netfilter: nf_tables: validate maximum value of u32 netlink attributes")

Signed-off-by: Liping Zhang <zlpnobody@gmail.com>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
net/netfilter/nft_cmp.c
net/netfilter/nft_immediate.c

index 2e53739812b1712af2f60762ed5c8a029facd5a0..e25b35d70e4dc8a1f63de86f112f37760c132227 100644 (file)
@@ -84,9 +84,6 @@ static int nft_cmp_init(const struct nft_ctx *ctx, const struct nft_expr *expr,
        if (err < 0)
                return err;
 
-       if (desc.len > U8_MAX)
-               return -ERANGE;
-
        priv->op  = ntohl(nla_get_be32(tb[NFTA_CMP_OP]));
        priv->len = desc.len;
        return 0;
index d17018ff54e6e67accc7f60e22f3cbfea6adfa94..4528adea7ede873652c8ab7b5f9184e0d135ede9 100644 (file)
@@ -54,9 +54,6 @@ static int nft_immediate_init(const struct nft_ctx *ctx,
        if (err < 0)
                return err;
 
-       if (desc.len > U8_MAX)
-               return -ERANGE;
-
        priv->dlen = desc.len;
 
        priv->dreg = nft_parse_register(tb[NFTA_IMMEDIATE_DREG]);