From: Roy Marples Date: Fri, 22 Feb 2008 09:29:40 +0000 (+0000) Subject: ifreqs could have more than structs larger than sockaddr, so use the union size. X-Git-Tag: v3.2.3~8 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=33184ac664ba3c2e3eba50306c2317a77242172e;p=thirdparty%2Fdhcpcd.git ifreqs could have more than structs larger than sockaddr, so use the union size. --- diff --git a/interface.c b/interface.c index 1178382d..32926243 100644 --- a/interface.c +++ b/interface.c @@ -250,8 +250,7 @@ static int _do_interface (const char *ifname, #ifdef __linux__ p += sizeof (*ifr); #else - p += sizeof (ifr->ifr_name) + - MAX (ifr->ifr_addr.sa_len, sizeof (struct sockaddr)); + p += offsetof (struct ifreq, ifr_ifru) + ifr->ifr_addr.sa_len; #endif if (strcmp (ifname, ifr->ifr_name) != 0)