summaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorPablo Neira Ayuso <pablo@netfilter.org>2014-10-14 12:43:50 +0200
committerPablo Neira Ayuso <pablo@netfilter.org>2014-10-14 12:52:40 +0200
commit493618a92c6afdd3f6224ab586f169d6a259bb06 (patch)
tree53888e90a90e3a663d23581dc072f60364bf922d /net
parent7210e4e38f945dfa173c4a4e59ad827c9ecad541 (diff)
downloadlinux-493618a92c6afdd3f6224ab586f169d6a259bb06.tar.gz
linux-493618a92c6afdd3f6224ab586f169d6a259bb06.tar.bz2
linux-493618a92c6afdd3f6224ab586f169d6a259bb06.zip
netfilter: nft_compat: fix hook validation for non-base chains
Set hook_mask to zero for non-base chains, otherwise people may hit bogus errors from the xt_check_target() and xt_check_match() when validating the uninitialized hook_mask. Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Diffstat (limited to 'net')
-rw-r--r--net/netfilter/nft_compat.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/net/netfilter/nft_compat.c b/net/netfilter/nft_compat.c
index 7e2683c8a44a..44ae273b4391 100644
--- a/net/netfilter/nft_compat.c
+++ b/net/netfilter/nft_compat.c
@@ -95,6 +95,8 @@ nft_target_set_tgchk_param(struct xt_tgchk_param *par,
const struct nf_hook_ops *ops = &basechain->ops[0];
par->hook_mask = 1 << ops->hooknum;
+ } else {
+ par->hook_mask = 0;
}
par->family = ctx->afi->family;
}
@@ -293,6 +295,8 @@ nft_match_set_mtchk_param(struct xt_mtchk_param *par, const struct nft_ctx *ctx,
const struct nf_hook_ops *ops = &basechain->ops[0];
par->hook_mask = 1 << ops->hooknum;
+ } else {
+ par->hook_mask = 0;
}
par->family = ctx->afi->family;
}