Skip to content

Commit 292781c

Browse files
committed
netfilter: nft_compat: reject unused compat flag
Flag (1 << 0) is ignored is set, never used, reject it it with EINVAL instead. Fixes: 0ca743a ("netfilter: nf_tables: add compatibility layer for x_tables") Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
1 parent 36fa8d6 commit 292781c

File tree

2 files changed

+4
-1
lines changed

2 files changed

+4
-1
lines changed

include/uapi/linux/netfilter/nf_tables.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -285,9 +285,11 @@ enum nft_rule_attributes {
285285
/**
286286
* enum nft_rule_compat_flags - nf_tables rule compat flags
287287
*
288+
* @NFT_RULE_COMPAT_F_UNUSED: unused
288289
* @NFT_RULE_COMPAT_F_INV: invert the check result
289290
*/
290291
enum nft_rule_compat_flags {
292+
NFT_RULE_COMPAT_F_UNUSED = (1 << 0),
291293
NFT_RULE_COMPAT_F_INV = (1 << 1),
292294
NFT_RULE_COMPAT_F_MASK = NFT_RULE_COMPAT_F_INV,
293295
};

net/netfilter/nft_compat.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -212,7 +212,8 @@ static int nft_parse_compat(const struct nlattr *attr, u16 *proto, bool *inv)
212212
return -EINVAL;
213213

214214
flags = ntohl(nla_get_be32(tb[NFTA_RULE_COMPAT_FLAGS]));
215-
if (flags & ~NFT_RULE_COMPAT_F_MASK)
215+
if (flags & NFT_RULE_COMPAT_F_UNUSED ||
216+
flags & ~NFT_RULE_COMPAT_F_MASK)
216217
return -EINVAL;
217218
if (flags & NFT_RULE_COMPAT_F_INV)
218219
*inv = true;

0 commit comments

Comments
 (0)