Messages in this thread |  | | Date | Thu, 6 Sep 2001 22:22:28 +0200 | From | Matthias Andree <> | Subject | Re: ioctl SIOCGIFNETMASK: ip alias bug 2.4.9 and 2.2.19 |
| |
On Wed, 05 Sep 2001, jamal wrote:
> --- devinet.c 2001/09/04 19:18:51 1.1 > +++ devinet.c 2001/09/04 19:31:13 > @@ -530,7 +530,7 @@ > > if ((in_dev=__in_dev_get(dev)) != NULL) { > for (ifap=&in_dev->ifa_list; (ifa=*ifap) != NULL; > ifap=&ifa->ifa_next) > - if (strcmp(ifr.ifr_name, ifa->ifa_label) == 0) > + if ((strcmp(ifr.ifr_name, ifa->ifa_label) == 0) || > (sin->sin_addr.s_addr == ifa->ifa_address)) > break; > }
Thanks for trying to help, however, that's not going to work this way, sorry.
1. "sin" is cleared a few lines above, so you end up comparing 0.0.0.0 against "ifa->ifa_address".
2. two interfaces can have the same configured address, your patch might end up returning the wrong address. You'd need to write && where you wrote ||, and you'd need to save the old address.
See the patch that I sent.
-- Matthias Andree - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
|  |