Commit 5a1ccffd authored by Kuniyuki Iwashima's avatar Kuniyuki Iwashima Committed by Jakub Kicinski
Browse files

ip: fib_rules: Fetch net from fib_rule in fib[46]_rule_configure().



The following patch will not set skb->sk from VRF path.

Let's fetch net from fib_rule->fr_net instead of sock_net(skb->sk)
in fib[46]_rule_configure().

Signed-off-by: default avatarKuniyuki Iwashima <kuniyu@amazon.com>
Reviewed-by: default avatarEric Dumazet <edumazet@google.com>
Reviewed-by: default avatarIdo Schimmel <idosch@nvidia.com>
Tested-by: default avatarIdo Schimmel <idosch@nvidia.com>
Link: https://patch.msgid.link/20250207072502.87775-5-kuniyu@amazon.com


Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parent 8b498773
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -245,9 +245,9 @@ static int fib4_rule_configure(struct fib_rule *rule, struct sk_buff *skb,
			       struct nlattr **tb,
			       struct netlink_ext_ack *extack)
{
	struct net *net = sock_net(skb->sk);
	int err = -EINVAL;
	struct fib4_rule *rule4 = (struct fib4_rule *)rule;
	struct net *net = rule->fr_net;
	int err = -EINVAL;

	if (tb[FRA_FLOWLABEL] || tb[FRA_FLOWLABEL_MASK]) {
		NL_SET_ERR_MSG(extack,
+2 −2
Original line number Diff line number Diff line
@@ -399,9 +399,9 @@ static int fib6_rule_configure(struct fib_rule *rule, struct sk_buff *skb,
			       struct nlattr **tb,
			       struct netlink_ext_ack *extack)
{
	int err = -EINVAL;
	struct net *net = sock_net(skb->sk);
	struct fib6_rule *rule6 = (struct fib6_rule *)rule;
	struct net *net = rule->fr_net;
	int err = -EINVAL;

	if (!inet_validate_dscp(frh->tos)) {
		NL_SET_ERR_MSG(extack,