Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 366e4adc authored by Patrick McHardy's avatar Patrick McHardy Committed by David S. Miller
Browse files

[IPV6]: Fix routing by fwmark



Fix mark comparison, also dump the mask to userspace when the mask is
zero, but the mark is not (in which case the mark is dumped, so the
mask is needed to make sense of it).

Signed-off-by: default avatarPatrick McHardy <kaber@trash.net>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 74975d40
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -129,7 +129,7 @@ static int fib6_rule_match(struct fib_rule *rule, struct flowi *fl, int flags)
		return 0;

#ifdef CONFIG_IPV6_ROUTE_FWMARK
	if ((r->fwmark ^ fl->fl6_fwmark) / r->fwmask)
	if ((r->fwmark ^ fl->fl6_fwmark) & r->fwmask)
		return 0;
#endif

@@ -256,7 +256,7 @@ static int fib6_rule_fill(struct fib_rule *rule, struct sk_buff *skb,
	if (rule6->fwmark)
		NLA_PUT_U32(skb, FRA_FWMARK, rule6->fwmark);

	if (rule6->fwmask)
	if (rule6->fwmask || rule6->fwmark)
		NLA_PUT_U32(skb, FRA_FWMASK, rule6->fwmask);
#endif