@@ -407,6 +407,7 @@ _res_hconf_reorder_addrs (struct hostent *hp)
if (num_ifs <= 0)
{
struct ifreq *ifr, *cur_ifr;
+ struct sockaddr_in *sin;
int sd, num, i;
/* Save errno. */
int save = errno;
@@ -443,14 +444,14 @@ _res_hconf_reorder_addrs (struct hostent *hp)
continue;
ifaddrs[new_num_ifs].addrtype = AF_INET;
- ifaddrs[new_num_ifs].u.ipv4.addr =
- ((struct sockaddr_in *) &cur_ifr->ifr_addr)->sin_addr.s_addr;
+ sin = (struct sockaddr_in *) &cur_ifr->ifr_addr;
+ ifaddrs[new_num_ifs].u.ipv4.addr = sin->sin_addr.s_addr;
if (__ioctl (sd, SIOCGIFNETMASK, cur_ifr) < 0)
continue;
- ifaddrs[new_num_ifs].u.ipv4.mask =
- ((struct sockaddr_in *) &cur_ifr->ifr_netmask)->sin_addr.s_addr;
+ sin = (struct sockaddr_in *) &cur_ifr->ifr_netmask;
+ ifaddrs[new_num_ifs].u.ipv4.mask = sin->sin_addr.s_addr;
/* Now we're committed to this entry. */
++new_num_ifs;