]> err.no Git - linux-2.6/commitdiff
[ARP]: Fix arp reply when sender ip 0
authorJonas Danielsson <the.sator@gmail.com>
Wed, 21 Nov 2007 01:38:16 +0000 (17:38 -0800)
committerDavid S. Miller <davem@davemloft.net>
Wed, 21 Nov 2007 01:38:16 +0000 (17:38 -0800)
Fix arp reply when received arp probe with sender ip 0.

Send arp reply with target ip address 0.0.0.0 and target hardware
address set to hardware address of requester. Previously sent reply
with target ip address and target hardware address set to same as
source fields.

Signed-off-by: Jonas Danielsson <the.sator@gmail.com>
Acked-by: Alexey Kuznetov <kuznet@ms2.inr.ac.ru>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv4/arp.c

index 36d6798947b59026eb400c6b06882099fddd8ba0..15ca729f7084bb832ee07b561ddb5ce9f6b592d0 100644 (file)
@@ -828,7 +828,8 @@ static int arp_process(struct sk_buff *skb)
                if (arp->ar_op == htons(ARPOP_REQUEST) &&
                    inet_addr_type(tip) == RTN_LOCAL &&
                    !arp_ignore(in_dev,dev,sip,tip))
-                       arp_send(ARPOP_REPLY,ETH_P_ARP,tip,dev,tip,sha,dev->dev_addr,dev->dev_addr);
+                       arp_send(ARPOP_REPLY, ETH_P_ARP, sip, dev, tip, sha,
+                                dev->dev_addr, sha);
                goto out;
        }