diff --git a/ChangeLog b/ChangeLog index f8e0e6cb7d..cbdc3a4dce 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,24 @@ +2014-12-02 Joseph Myers + + [BZ #17668] + * inet/ifaddrs.c (getifaddrs): Rename to __getifaddrs and define + as weak alias of __getifaddrs. Use libc_hidden_weak. + (freeifaddrs): Rename to __freeifaddrs and define as weak alias of + __freeifaddrs. Use libc_hidden_weak. + * sysdeps/gnu/ifaddrs.c (getifaddrs): Rename to __getifaddrs and + define as weak alias of __getifaddrs. Use libc_hidden_weak. + (freeifaddrs): Rename to __freeifaddrs and define as weak alias of + __freeifaddrs. Use libc_hidden_weak. + * sysdeps/unix/sysv/linux/ifaddrs.c (getifaddrs): Rename to + __getifaddrs and define as weak alias of __getifaddrs. Use + libc_hidden_weak. + (freeifaddrs): Rename to __freeifaddrs and define as weak alias of + __freeifaddrs. Use libc_hidden_weak. + * conform/Makefile (test-xfail-XOPEN2K/net/if.h/linknamespace): + Remove variable. + (test-xfail-POSIX2008/net/if.h/linknamespace): Likewise. + (test-xfail-XOPEN2K8/net/if.h/linknamespace): Likewise. + 2014-12-02 Petar Jovanovic [BZ #17601] diff --git a/NEWS b/NEWS index 33ab071d3f..581bc8b54c 100644 --- a/NEWS +++ b/NEWS @@ -13,7 +13,7 @@ Version 2.21 16619, 16740, 16857, 17192, 17266, 17344, 17363, 17370, 17371, 17411, 17460, 17475, 17485, 17501, 17506, 17508, 17522, 17555, 17570, 17571, 17572, 17573, 17574, 17581, 17582, 17583, 17584, 17585, 17589, 17594, - 17601, 17608, 17616, 17625, 17633, 17664, 17665. + 17601, 17608, 17616, 17625, 17633, 17664, 17665, 17668. * CVE-2104-7817 The wordexp function could ignore the WRDE_NOCMD flag under certain input conditions resulting in the execution of a shell for diff --git a/conform/Makefile b/conform/Makefile index eed2843043..8f07d87ca5 100644 --- a/conform/Makefile +++ b/conform/Makefile @@ -414,7 +414,6 @@ test-xfail-XOPEN2K/glob.h/linknamespace = yes test-xfail-XOPEN2K/grp.h/linknamespace = yes test-xfail-XOPEN2K/libgen.h/linknamespace = yes test-xfail-XOPEN2K/mqueue.h/linknamespace = yes -test-xfail-XOPEN2K/net/if.h/linknamespace = yes test-xfail-XOPEN2K/netdb.h/linknamespace = yes test-xfail-XOPEN2K/pthread.h/linknamespace = yes test-xfail-XOPEN2K/pwd.h/linknamespace = yes @@ -436,7 +435,6 @@ test-xfail-POSIX2008/dirent.h/linknamespace = yes test-xfail-POSIX2008/fcntl.h/linknamespace = yes test-xfail-POSIX2008/grp.h/linknamespace = yes test-xfail-POSIX2008/mqueue.h/linknamespace = yes -test-xfail-POSIX2008/net/if.h/linknamespace = yes test-xfail-POSIX2008/netdb.h/linknamespace = yes test-xfail-POSIX2008/pthread.h/linknamespace = yes test-xfail-POSIX2008/regex.h/linknamespace = yes @@ -451,7 +449,6 @@ test-xfail-XOPEN2K8/fmtmsg.h/linknamespace = yes test-xfail-XOPEN2K8/grp.h/linknamespace = yes test-xfail-XOPEN2K8/libgen.h/linknamespace = yes test-xfail-XOPEN2K8/mqueue.h/linknamespace = yes -test-xfail-XOPEN2K8/net/if.h/linknamespace = yes test-xfail-XOPEN2K8/netdb.h/linknamespace = yes test-xfail-XOPEN2K8/pthread.h/linknamespace = yes test-xfail-XOPEN2K8/pwd.h/linknamespace = yes diff --git a/inet/ifaddrs.c b/inet/ifaddrs.c index 8071600949..bc273c6364 100644 --- a/inet/ifaddrs.c +++ b/inet/ifaddrs.c @@ -24,16 +24,17 @@ network interface on the host machine. If successful, store the list in *IFAP and return 0. On errors, return -1 and set `errno'. */ int -getifaddrs (struct ifaddrs **ifap) +__getifaddrs (struct ifaddrs **ifap) { __set_errno (ENOSYS); return -1; } -libc_hidden_def (getifaddrs) +weak_alias (__getifaddrs, getifaddrs) +libc_hidden_weak (getifaddrs) stub_warning (getifaddrs) void -freeifaddrs (struct ifaddrs *ifa) +__freeifaddrs (struct ifaddrs *ifa) { if (ifa == NULL) return; /* a la free, why not? */ @@ -41,5 +42,6 @@ freeifaddrs (struct ifaddrs *ifa) /* Can't be called properly if getifaddrs never succeeded. */ abort (); } -libc_hidden_def (freeifaddrs) +weak_alias (__freeifaddrs, freeifaddrs) +libc_hidden_weak (freeifaddrs) stub_warning (freeifaddrs) diff --git a/sysdeps/gnu/ifaddrs.c b/sysdeps/gnu/ifaddrs.c index 1b8775f013..3607b2c8bd 100644 --- a/sysdeps/gnu/ifaddrs.c +++ b/sysdeps/gnu/ifaddrs.c @@ -32,7 +32,7 @@ network interface on the host machine. If successful, store the list in *IFAP and return 0. On errors, return -1 and set `errno'. */ int -getifaddrs (struct ifaddrs **ifap) +__getifaddrs (struct ifaddrs **ifap) { /* This implementation handles only IPv4 interfaces. The various ioctls below will only work on an AF_INET socket. @@ -150,13 +150,15 @@ getifaddrs (struct ifaddrs **ifap) return 0; } +weak_alias (__getifaddrs, getifaddrs) #ifndef getifaddrs -libc_hidden_def (getifaddrs) +libc_hidden_weak (getifaddrs) #endif void -freeifaddrs (struct ifaddrs *ifa) +__freeifaddrs (struct ifaddrs *ifa) { free (ifa); } -libc_hidden_def (freeifaddrs) +weak_alias (__freeifaddrs, freeifaddrs) +libc_hidden_weak (freeifaddrs) diff --git a/sysdeps/unix/sysv/linux/ifaddrs.c b/sysdeps/unix/sysv/linux/ifaddrs.c index a47b2edcad..3f03f863e4 100644 --- a/sysdeps/unix/sysv/linux/ifaddrs.c +++ b/sysdeps/unix/sysv/linux/ifaddrs.c @@ -819,7 +819,7 @@ getifaddrs_internal (struct ifaddrs **ifap) network interface on the host machine. If successful, store the list in *IFAP and return 0. On errors, return -1 and set `errno'. */ int -getifaddrs (struct ifaddrs **ifap) +__getifaddrs (struct ifaddrs **ifap) { int res; @@ -829,12 +829,14 @@ getifaddrs (struct ifaddrs **ifap) return res; } -libc_hidden_def (getifaddrs) +weak_alias (__getifaddrs, getifaddrs) +libc_hidden_weak (getifaddrs) void -freeifaddrs (struct ifaddrs *ifa) +__freeifaddrs (struct ifaddrs *ifa) { free (ifa); } -libc_hidden_def (freeifaddrs) +weak_alias (__freeifaddrs, freeifaddrs) +libc_hidden_weak (freeifaddrs)