]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
ip: fib_rules: Fetch net from fib_rule in fib[46]_rule_configure().
authorKuniyuki Iwashima <kuniyu@amazon.com>
Fri, 7 Feb 2025 07:24:58 +0000 (16:24 +0900)
committerJakub Kicinski <kuba@kernel.org>
Tue, 11 Feb 2025 03:08:52 +0000 (19:08 -0800)
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: Kuniyuki Iwashima <kuniyu@amazon.com>
Reviewed-by: Eric Dumazet <edumazet@google.com>
Reviewed-by: Ido Schimmel <idosch@nvidia.com>
Tested-by: Ido Schimmel <idosch@nvidia.com>
Link: https://patch.msgid.link/20250207072502.87775-5-kuniyu@amazon.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
net/ipv4/fib_rules.c
net/ipv6/fib6_rules.c

index 9517b8667e00029aba5b8a5ab96076eb1a8d9ea2..041c46787d9414b617fa3930196547ad9075faa4 100644 (file)
@@ -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);
+       struct fib4_rule *rule4 = (struct fib4_rule *)rule;
+       struct net *net = rule->fr_net;
        int err = -EINVAL;
-       struct fib4_rule *rule4 = (struct fib4_rule *) rule;
 
        if (tb[FRA_FLOWLABEL] || tb[FRA_FLOWLABEL_MASK]) {
                NL_SET_ERR_MSG(extack,
index 67d39114d9a63463967cbe57353b793d479b5490..40af8fd6efa70d75b2122dd5bc00bb549078b4ad 100644 (file)
@@ -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)
 {
+       struct fib6_rule *rule6 = (struct fib6_rule *)rule;
+       struct net *net = rule->fr_net;
        int err = -EINVAL;
-       struct net *net = sock_net(skb->sk);
-       struct fib6_rule *rule6 = (struct fib6_rule *) rule;
 
        if (!inet_validate_dscp(frh->tos)) {
                NL_SET_ERR_MSG(extack,