netfilter: nft_osf: usage from output path is not valid

The nft_osf extension, like xt_osf, is not supported from the output
path.

Fixes: b96af92d6e ("netfilter: nf_tables: implement Passive OS fingerprint module in nft_osf")
Signed-off-by: Fernando Fernandez Mancera <ffmancera@riseup.net>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
This commit is contained in:
Fernando Fernandez Mancera 2018-10-10 09:56:09 +02:00 committed by Pablo Neira Ayuso
parent 3b18d5eba4
commit 4a3e71b7b7

View File

@ -69,6 +69,15 @@ static int nft_osf_dump(struct sk_buff *skb, const struct nft_expr *expr)
return -1; return -1;
} }
static int nft_osf_validate(const struct nft_ctx *ctx,
const struct nft_expr *expr,
const struct nft_data **data)
{
return nft_chain_validate_hooks(ctx->chain, (1 << NF_INET_LOCAL_IN) |
(1 << NF_INET_PRE_ROUTING) |
(1 << NF_INET_FORWARD));
}
static struct nft_expr_type nft_osf_type; static struct nft_expr_type nft_osf_type;
static const struct nft_expr_ops nft_osf_op = { static const struct nft_expr_ops nft_osf_op = {
.eval = nft_osf_eval, .eval = nft_osf_eval,
@ -76,6 +85,7 @@ static const struct nft_expr_ops nft_osf_op = {
.init = nft_osf_init, .init = nft_osf_init,
.dump = nft_osf_dump, .dump = nft_osf_dump,
.type = &nft_osf_type, .type = &nft_osf_type,
.validate = nft_osf_validate,
}; };
static struct nft_expr_type nft_osf_type __read_mostly = { static struct nft_expr_type nft_osf_type __read_mostly = {