summaryrefslogtreecommitdiff
path: root/net/ipv4/arp.c
diff options
context:
space:
mode:
authorJonas Danielsson <the.sator@gmail.com>2007-11-21 01:38:16 (GMT)
committerDavid S. Miller <davem@davemloft.net>2007-11-21 01:38:16 (GMT)
commitb4a9811c42ecb70b2f0b375f6d4c77ab34d1f598 (patch)
tree84cb96d0195a995b6d5bd5ca31c6c270e6097dbc /net/ipv4/arp.c
parent77adefdc9863d63f8d8bdc6a9adcdf9a6b0e2410 (diff)
downloadlinux-b4a9811c42ecb70b2f0b375f6d4c77ab34d1f598.tar.xz
[ARP]: Fix arp reply when sender ip 0
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>
Diffstat (limited to 'net/ipv4/arp.c')
-rw-r--r--net/ipv4/arp.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/net/ipv4/arp.c b/net/ipv4/arp.c
index 36d6798..15ca729 100644
--- a/net/ipv4/arp.c
+++ b/net/ipv4/arp.c
@@ -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;
}