From f8446400891d026b8f19f44423125af8e964a989 Mon Sep 17 00:00:00 2001 From: David Engel Date: Fri, 21 Oct 2005 22:09:16 -0500 Subject: [PATCH] --- yaml --- r: 10178 b: refs/heads/master c: dcab5e1eeccf5e226c771ecc013631cde157435f h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/net/ipv4/devinet.c | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index 0d2165a618d1..21060af0b01c 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 95df1c04ab3f7ca617774930df62c0893a188c2c +refs/heads/master: dcab5e1eeccf5e226c771ecc013631cde157435f diff --git a/trunk/net/ipv4/devinet.c b/trunk/net/ipv4/devinet.c index 74f2207e131a..4ec4b2ca6ab1 100644 --- a/trunk/net/ipv4/devinet.c +++ b/trunk/net/ipv4/devinet.c @@ -715,6 +715,7 @@ int devinet_ioctl(unsigned int cmd, void __user *arg) break; ret = 0; if (ifa->ifa_mask != sin->sin_addr.s_addr) { + u32 old_mask = ifa->ifa_mask; inet_del_ifa(in_dev, ifap, 0); ifa->ifa_mask = sin->sin_addr.s_addr; ifa->ifa_prefixlen = inet_mask_len(ifa->ifa_mask); @@ -728,7 +729,7 @@ int devinet_ioctl(unsigned int cmd, void __user *arg) if ((dev->flags & IFF_BROADCAST) && (ifa->ifa_prefixlen < 31) && (ifa->ifa_broadcast == - (ifa->ifa_local|~ifa->ifa_mask))) { + (ifa->ifa_local|~old_mask))) { ifa->ifa_broadcast = (ifa->ifa_local | ~sin->sin_addr.s_addr); }