1
0
mirror of https://sourceware.org/git/glibc.git synced 2025-08-08 17:42:12 +03:00

* resolv/res_hconf.c (_res_hconf_reorder_addrs): Use a union to

copy data from cur_ifr->ifr_addr and cur_ifr->ifr_netmask.
This commit is contained in:
Steve Ellcey
2015-06-01 09:00:05 -07:00
parent fd57d826c6
commit 2483fa850f
2 changed files with 15 additions and 4 deletions

View File

@@ -1,3 +1,8 @@
2015-06-01 Steve Ellcey <sellcey@imgtec.com>
* resolv/res_hconf.c (_res_hconf_reorder_addrs): Use a union to
copy data from cur_ifr->ifr_addr and cur_ifr->ifr_netmask.
2015-05-29 Adhemerval Zanella <adhemerval.zanella@linaro.org> 2015-05-29 Adhemerval Zanella <adhemerval.zanella@linaro.org>
* sysdeps/powerpc/fpu/libm-test-ulps: Update. * sysdeps/powerpc/fpu/libm-test-ulps: Update.

View File

@@ -439,18 +439,24 @@ _res_hconf_reorder_addrs (struct hostent *hp)
for (cur_ifr = ifr, i = 0; i < num; for (cur_ifr = ifr, i = 0; i < num;
cur_ifr = __if_nextreq (cur_ifr), ++i) cur_ifr = __if_nextreq (cur_ifr), ++i)
{ {
union
{
struct sockaddr sa;
struct sockaddr_in sin;
} ss;
if (cur_ifr->ifr_addr.sa_family != AF_INET) if (cur_ifr->ifr_addr.sa_family != AF_INET)
continue; continue;
ifaddrs[new_num_ifs].addrtype = AF_INET; ifaddrs[new_num_ifs].addrtype = AF_INET;
ifaddrs[new_num_ifs].u.ipv4.addr = ss.sa = cur_ifr->ifr_addr;
((struct sockaddr_in *) &cur_ifr->ifr_addr)->sin_addr.s_addr; ifaddrs[new_num_ifs].u.ipv4.addr = ss.sin.sin_addr.s_addr;
if (__ioctl (sd, SIOCGIFNETMASK, cur_ifr) < 0) if (__ioctl (sd, SIOCGIFNETMASK, cur_ifr) < 0)
continue; continue;
ifaddrs[new_num_ifs].u.ipv4.mask = ss.sa = cur_ifr->ifr_netmask;
((struct sockaddr_in *) &cur_ifr->ifr_netmask)->sin_addr.s_addr; ifaddrs[new_num_ifs].u.ipv4.mask = ss.sin.sin_addr.s_addr;
/* Now we're committed to this entry. */ /* Now we're committed to this entry. */
++new_num_ifs; ++new_num_ifs;