Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a21090cf authored by Stephen Hemminger's avatar Stephen Hemminger Committed by David S. Miller
Browse files

ipv4: arp_notify address list bug

This fixes a bug with arp_notify.

If arp_notify is enabled, kernel will crash if address is changed
and no IP address is assigned.
  http://bugzilla.kernel.org/show_bug.cgi?id=14330



Reported-by: default avatarHannes Frederic Sowa <hannes@stressinduktion.org>
Signed-off-by: default avatarStephen Hemminger <shemminger@vyatta.com>
Signed-off-by: default avatarEric Dumazet <eric.dumazet@gmail.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 1cec9727
Loading
Loading
Loading
Loading
+10 −6
Original line number Diff line number Diff line
@@ -1077,12 +1077,16 @@ static int inetdev_event(struct notifier_block *this, unsigned long event,
		ip_mc_up(in_dev);
		/* fall through */
	case NETDEV_CHANGEADDR:
		if (IN_DEV_ARP_NOTIFY(in_dev))
		/* Send gratuitous ARP to notify of link change */
		if (IN_DEV_ARP_NOTIFY(in_dev)) {
			struct in_ifaddr *ifa = in_dev->ifa_list;

			if (ifa)
				arp_send(ARPOP_REQUEST, ETH_P_ARP,
				 in_dev->ifa_list->ifa_address,
				 dev,
				 in_dev->ifa_list->ifa_address,
				 NULL, dev->dev_addr, NULL);
					 ifa->ifa_address, dev,
					 ifa->ifa_address, NULL,
					 dev->dev_addr, NULL);
		}
		break;
	case NETDEV_DOWN:
		ip_mc_down(in_dev);