Mercurial > ecos-v3_0-branch
changeset 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 | 598fbd635caf |
| children | 6f9085944169 |
| files | packages/net/common/current/ChangeLog packages/net/common/current/src/dhcp_prot.c |
| diffstat | 2 files changed, 11 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/packages/net/common/current/ChangeLog +++ b/packages/net/common/current/ChangeLog @@ -1,3 +1,8 @@ +2003-04-02 Andrew Lunn <andrew.lunn@ascom.ch> + + * src/dhcp_prot.c (do_dhcp_down_net): SIOCGLIFADDR and SIOCDLIFADDR + take if_laddrreq not ifreq. This caused stack corruption. + 2003-03-21 Nick Garnett <nickg@balti.calivar.com> * include/network.h: Added include of pkgconf/io_eth_drivers.h
--- 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);
