From: Pablo Neira Ayuso <pablo@netfilter.org>
Date: Thu, 9 Jan 2014 19:03:55 +0000 (+0100)
Subject: netfilter: nft_meta: fix lack of validation of the input register
X-Git-Tag: firefly_0821_release~176^2~4570^2~245^2~13
X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=b38895c5773b00977ca6beff8ebbd2e3f55f1f84;p=firefly-linux-kernel-4.4.55.git

netfilter: nft_meta: fix lack of validation of the input register

We have to validate that the input register is in the range of
allowed registers, otherwise we can take a incorrect register
value as input that may lead us to a crash.

Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
---

diff --git a/net/netfilter/nft_meta.c b/net/netfilter/nft_meta.c
index b43975a43309..e8254ad2e5a9 100644
--- a/net/netfilter/nft_meta.c
+++ b/net/netfilter/nft_meta.c
@@ -239,6 +239,9 @@ static int nft_meta_init(const struct nft_ctx *ctx, const struct nft_expr *expr,
 		return err;
 
 	priv->sreg = ntohl(nla_get_be32(tb[NFTA_META_SREG]));
+	err = nft_validate_input_register(priv->sreg);
+	if (err < 0)
+		return err;
 
 	return 0;
 }