Mercurial > ecos
diff packages/net/common/current/src/dhcp_prot.c @ 897:07ad44cfd9a4
* src/dhcp_prot.c (do_dhcp_down_net): SIOCGLIFADDR and SIOCDLIFADDR
take if_laddrreq not ifreq. This caused stack corruption.
| author | asl |
|---|---|
| date | Thu, 03 Apr 2003 14:04:31 +0000 |
| parents | 7c34839e7e97 |
| children | db3e0a2fda2f |
line wrap: on
line diff
--- a/packages/net/common/current/src/dhcp_prot.c +++ b/packages/net/common/current/src/dhcp_prot.c @@ -1303,21 +1303,22 @@ do_dhcp_down_net(const char *intf, struc #ifdef INET6 { int s6; - + struct if_laddrreq iflr; + s6 = socket(AF_INET6, SOCK_DGRAM, 0); if (s6 < 0) { perror("socket AF_INET6"); return false; } // Now delete the ipv6 addr - strcpy(ifr.ifr_name, intf); - if (ioctl(s6, SIOCGLIFADDR, &ifr)) { + strcpy(iflr.iflr_name, intf); + if (ioctl(s6, SIOCGLIFADDR, &iflr)) { perror("SIOCGIFADDR_IN6 1"); return false; } - strcpy(ifr.ifr_name, intf); - if (ioctl(s6, SIOCDLIFADDR, &ifr)) { /* delete IF addr */ + strcpy(iflr.iflr_name, intf); + if (ioctl(s6, SIOCDLIFADDR, &iflr)) { /* delete IF addr */ perror("SIOCDIFADDR_IN61"); } close(s6);
