netfilter: ctnetlink: be more strict when NF_CONNTRACK_MARK is not set
authorRomain Bellan <romain.bellan@wifirst.fr>
Fri, 27 Mar 2020 08:26:32 +0000 (09:26 +0100)
committerPablo Neira Ayuso <pablo@netfilter.org>
Mon, 30 Mar 2020 00:05:36 +0000 (02:05 +0200)
When CONFIG_NF_CONNTRACK_MARK is not set, any CTA_MARK or CTA_MARK_MASK
in netlink message are not supported. We should return an error when one
of them is set, not both

Fixes: 9306425b70bf ("netfilter: ctnetlink: must check mark attributes vs NULL")
Signed-off-by: Romain Bellan <romain.bellan@wifirst.fr>
Signed-off-by: Florent Fourcot <florent.fourcot@wifirst.fr>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
net/netfilter/nf_conntrack_netlink.c

index eb19020..9ddfcd0 100644 (file)
@@ -860,7 +860,7 @@ ctnetlink_alloc_filter(const struct nlattr * const cda[], u8 family)
        struct ctnetlink_filter *filter;
 
 #ifndef CONFIG_NF_CONNTRACK_MARK
-       if (cda[CTA_MARK] && cda[CTA_MARK_MASK])
+       if (cda[CTA_MARK] || cda[CTA_MARK_MASK])
                return ERR_PTR(-EOPNOTSUPP);
 #endif