]> git.hungrycats.org Git - linux/commitdiff
raw: fix a typo in raw_icmp_error()
authorEric Dumazet <edumazet@google.com>
Thu, 23 Jun 2022 19:35:40 +0000 (19:35 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 17 Aug 2022 12:42:34 +0000 (14:42 +0200)
commit 97a4d46b1516250d640c1ae0c9e7129d160d6a1c upstream.

I accidentally broke IPv4 traceroute, by swapping iph->saddr
and iph->daddr.

Probably because raw_icmp_error() and raw_v4_input()
use different order for iph->saddr and iph->daddr.

Fixes: ba44f8182ec2 ("raw: use more conventional iterators")
Reported-by: John Sperbeck <jsperbeck@google.com>
Signed-off-by: Eric Dumazet <edumazet@google.com>
Link: https://lore.kernel.org/r/20220623193540.2851799-1-edumazet@google.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
net/ipv4/raw.c

index 0d534f4720c4e349aa153d4a143d3a845810dd3a..d269b85630b2b1e614f85f96cf0e113ab480d4d9 100644 (file)
@@ -278,7 +278,7 @@ void raw_icmp_error(struct sk_buff *skb, int protocol, u32 info)
        hlist_nulls_for_each_entry(sk, hnode, hlist, sk_nulls_node) {
                iph = (const struct iphdr *)skb->data;
                if (!raw_v4_match(net, sk, iph->protocol,
-                                 iph->saddr, iph->daddr, dif, sdif))
+                                 iph->daddr, iph->saddr, dif, sdif))
                        continue;
                raw_err(sk, skb, info);
        }