2014-12-16 Joseph Myers <joseph@codesourcery.com>
+ [BZ #17717]
+ * inet/if_index.c (if_nametoindex): Rename to __if_nametoindex and
+ define as weak alias of __if_nametoindex. Use libc_hidden_weak.
+ (if_indextoname): Rename to __if_indextoname and define as weak
+ alias of __if_indextoname. Use libc_hidden_weak.
+ (if_freenameindex): Rename to __if_freenameindex and define as
+ weak alias of __if_freenameindex.
+ (if_nameindex): Rename to __if_nameindex and define as weak alias
+ of __if_nameindex.
+ * sysdeps/mach/hurd/if_index.c (if_nametoindex): Rename to
+ __if_nametoindex and define as weak alias of __if_nametoindex.
+ Use libc_hidden_weak.
+ (if_freenameindex): Rename to __if_freenameindex and define as
+ weak alias of __if_freenameindex.
+ (if_nameindex): Rename to __if_nameindex and define as weak alias
+ of __if_nameindex.
+ (if_indextoname): Rename to __if_indextoname and define as weak
+ alias of __if_indextoname. Use libc_hidden_weak.
+ * sysdeps/unix/sysv/linux/if_index.c (if_nametoindex): Rename to
+ __if_nametoindex and define as weak alias of __if_nametoindex.
+ Use libc_hidden_weak.
+ (if_freenameindex): Rename to __if_freenameindex and define as
+ weak alias of __if_freenameindex. Use libc_hidden_weak.
+ (if_nameindex_netlink): Use __if_freenameindex instead of
+ if_freenameindex.
+ (if_nameindex): Rename to __if_nameindex and define as weak alias
+ of __if_nameindex. Use libc_hidden_weak.
+ (if_indextoname): Rename to __if_indextoname and define as weak
+ alias of __if_indextoname. Use libc_hidden_weak.
+ * include/net/if.h [!_ISOMAC] (__if_nametoindex): Declare and use
+ libc_hidden_proto.
+ [!_ISOMAC] (__if_freenameindex): Likewise.
+ * resolv/res_init.c (__res_vinit): Use __if_nametoindex instead of
+ if_nametoindex.
+ * conform/Makefile (test-xfail-XPG4/grp.h/linknamespace): Remove
+ variable.
+ (test-xfail-XPG4/pwd.h/linknamespace): Likewise.
+ (test-xfail-UNIX98/aio.h/linknamespace): Likewise.
+ (test-xfail-UNIX98/grp.h/linknamespace): Likewise.
+ (test-xfail-UNIX98/pthread.h/linknamespace): Likewise.
+ (test-xfail-UNIX98/pwd.h/linknamespace): Likewise.
+ (test-xfail-UNIX98/sched.h/linknamespace): Likewise.
+ (test-xfail-UNIX98/time.h/linknamespace): Likewise.
+
* conform/Makefile (test-xfail-UNIX98/semaphore.h/linknamespace):
Remove variable.
(test-xfail-XOPEN2K/semaphore.h/linknamespace): Likewise.
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, 17630, 17633,
- 17634, 17647, 17653, 17657, 17664, 17665, 17668, 17682.
+ 17634, 17647, 17653, 17657, 17664, 17665, 17668, 17682, 17717.
* CVE-2104-7817 The wordexp function could ignore the WRDE_NOCMD flag
under certain input conditions resulting in the execution of a shell for
test-xfail-XPG4/fmtmsg.h/linknamespace = yes
test-xfail-XPG4/fnmatch.h/linknamespace = yes
test-xfail-XPG4/glob.h/linknamespace = yes
-test-xfail-XPG4/grp.h/linknamespace = yes
test-xfail-XPG4/libgen.h/linknamespace = yes
test-xfail-XPG4/netdb.h/linknamespace = yes
-test-xfail-XPG4/pwd.h/linknamespace = yes
test-xfail-XPG4/regex.h/linknamespace = yes
test-xfail-XPG4/search.h/linknamespace = yes
test-xfail-XPG4/stdio.h/linknamespace = yes
test-xfail-POSIX/time.h/linknamespace = yes
test-xfail-POSIX/unistd.h/linknamespace = yes
test-xfail-POSIX/wordexp.h/linknamespace = yes
-test-xfail-UNIX98/aio.h/linknamespace = yes
test-xfail-UNIX98/ctype.h/linknamespace = yes
test-xfail-UNIX98/fmtmsg.h/linknamespace = yes
test-xfail-UNIX98/fnmatch.h/linknamespace = yes
test-xfail-UNIX98/glob.h/linknamespace = yes
-test-xfail-UNIX98/grp.h/linknamespace = yes
test-xfail-UNIX98/libgen.h/linknamespace = yes
test-xfail-UNIX98/mqueue.h/linknamespace = yes
test-xfail-UNIX98/netdb.h/linknamespace = yes
-test-xfail-UNIX98/pthread.h/linknamespace = yes
-test-xfail-UNIX98/pwd.h/linknamespace = yes
test-xfail-UNIX98/regex.h/linknamespace = yes
-test-xfail-UNIX98/sched.h/linknamespace = yes
test-xfail-UNIX98/search.h/linknamespace = yes
test-xfail-UNIX98/stdio.h/linknamespace = yes
test-xfail-UNIX98/stdlib.h/linknamespace = yes
test-xfail-UNIX98/syslog.h/linknamespace = yes
-test-xfail-UNIX98/time.h/linknamespace = yes
test-xfail-UNIX98/unistd.h/linknamespace = yes
test-xfail-UNIX98/wchar.h/linknamespace = yes
test-xfail-UNIX98/wordexp.h/linknamespace = yes
#ifndef _ISOMAC
libc_hidden_proto (if_nametoindex)
+extern __typeof (if_nametoindex) __if_nametoindex;
+libc_hidden_proto (__if_nametoindex)
libc_hidden_proto (if_indextoname)
libc_hidden_proto (if_nameindex)
libc_hidden_proto (if_freenameindex)
+extern __typeof (if_freenameindex) __if_freenameindex;
+libc_hidden_proto (__if_freenameindex)
#endif
#endif
#include <stddef.h>
unsigned int
-if_nametoindex (const char *ifname)
+__if_nametoindex (const char *ifname)
{
__set_errno (ENOSYS);
return 0;
}
-libc_hidden_def (if_nametoindex)
+libc_hidden_def (__if_nametoindex)
+weak_alias (__if_nametoindex, if_nametoindex)
+libc_hidden_weak (if_nametoindex)
stub_warning (if_nametoindex)
char *
-if_indextoname (unsigned int ifindex, char *ifname)
+__if_indextoname (unsigned int ifindex, char *ifname)
{
__set_errno (ENOSYS);
return NULL;
}
-libc_hidden_def (if_indextoname)
+weak_alias (__if_indextoname, if_indextoname)
+libc_hidden_weak (if_indextoname)
stub_warning (if_indextoname)
void
-if_freenameindex (struct if_nameindex *ifn)
+__if_freenameindex (struct if_nameindex *ifn)
{
}
+weak_alias (__if_freenameindex, if_freenameindex)
stub_warning (if_freenameindex)
struct if_nameindex *
-if_nameindex (void)
+__if_nameindex (void)
{
__set_errno (ENOSYS);
return NULL;
}
+weak_alias (__if_nameindex, if_nameindex)
stub_warning (if_nameindex)
#if 0
if (IN6_IS_ADDR_LINKLOCAL (&a6)
|| IN6_IS_ADDR_MC_LINKLOCAL (&a6)) {
sa6->sin6_scope_id
- = if_nametoindex (el + 1);
+ = __if_nametoindex (el + 1);
if (sa6->sin6_scope_id != 0)
try_numericscope = 0;
}
/* Return the interface index corresponding to interface IFNAME.
On error, return 0. */
unsigned int
-if_nametoindex (const char *ifname)
+__if_nametoindex (const char *ifname)
{
struct ifreq ifr;
int fd = __opensock ();
__close (fd);
return ifr.ifr_ifindex;
}
-libc_hidden_def (if_nametoindex)
+libc_hidden_def (__if_nametoindex)
+weak_alias (__if_nametoindex, if_nametoindex)
+libc_hidden_weak (if_nametoindex)
/* Free the structure IFN returned by if_nameindex. */
void
-if_freenameindex (struct if_nameindex *ifn)
+__if_freenameindex (struct if_nameindex *ifn)
{
struct if_nameindex *ptr = ifn;
while (ptr->if_name || ptr->if_index)
}
free (ifn);
}
+weak_alias (__if_freenameindex, if_freenameindex)
/* Return an array of if_nameindex structures, one for each network
interface present, plus one indicating the end of the array. On
error, return NULL. */
struct if_nameindex *
-if_nameindex (void)
+__if_nameindex (void)
{
error_t err = 0;
char data[2048];
__set_errno (err);
return idx;
}
+weak_alias (__if_nameindex, if_nameindex)
/* Store the name of the interface corresponding to index IFINDEX in
IFNAME (which has space for at least IFNAMSIZ characters). Return
IFNAME, or NULL on error. */
char *
-if_indextoname (unsigned int ifindex, char *ifname)
+__if_indextoname (unsigned int ifindex, char *ifname)
{
struct ifreq ifr;
int fd = __opensock ();
__close (fd);
return strncpy (ifname, ifr.ifr_name, IFNAMSIZ);
}
-libc_hidden_def (if_indextoname)
+weak_alias (__if_indextoname, if_indextoname)
+libc_hidden_weak (if_indextoname)
#if 0
void
unsigned int
-if_nametoindex (const char *ifname)
+__if_nametoindex (const char *ifname)
{
#ifndef SIOCGIFINDEX
__set_errno (ENOSYS);
return ifr.ifr_ifindex;
#endif
}
-libc_hidden_def (if_nametoindex)
+libc_hidden_def (__if_nametoindex)
+weak_alias (__if_nametoindex, if_nametoindex)
+libc_hidden_weak (if_nametoindex)
void
-if_freenameindex (struct if_nameindex *ifn)
+__if_freenameindex (struct if_nameindex *ifn)
{
struct if_nameindex *ptr = ifn;
while (ptr->if_name || ptr->if_index)
}
free (ifn);
}
-libc_hidden_def (if_freenameindex)
+libc_hidden_def (__if_freenameindex)
+weak_alias (__if_freenameindex, if_freenameindex)
+libc_hidden_weak (if_freenameindex)
static struct if_nameindex *
if (idx[nifs].if_name == NULL)
{
idx[nifs].if_index = 0;
- if_freenameindex (idx);
+ __if_freenameindex (idx);
idx = NULL;
goto nomem;
}
struct if_nameindex *
-if_nameindex (void)
+__if_nameindex (void)
{
#ifndef SIOCGIFINDEX
__set_errno (ENOSYS);
return result;
#endif
}
-libc_hidden_def (if_nameindex)
+weak_alias (__if_nameindex, if_nameindex)
+libc_hidden_weak (if_nameindex)
char *
-if_indextoname (unsigned int ifindex, char *ifname)
+__if_indextoname (unsigned int ifindex, char *ifname)
{
/* We may be able to do the conversion directly, rather than searching a
list. This ioctl is not present in kernels before version 2.1.50. */
else
return strncpy (ifname, ifr.ifr_name, IFNAMSIZ);
}
-libc_hidden_def (if_indextoname)
+weak_alias (__if_indextoname, if_indextoname)
+libc_hidden_weak (if_indextoname)