This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
[hurd,commited 4/4] hurd: Fix `getifaddrs' and `freeifaddrs' symbol exposition
- From: Samuel Thibault <samuel dot thibault at ens-lyon dot org>
- To: libc-alpha at sourceware dot org
- Cc: Samuel Thibault <samuel dot thibault at ens-lyon dot org>
- Date: Thu, 28 Sep 2017 01:17:42 +0200
- Subject: [hurd,commited 4/4] hurd: Fix `getifaddrs' and `freeifaddrs' symbol exposition
- Authentication-results: sourceware.org; auth=none
- References: <20170927231742.9050-1-samuel.thibault@ens-lyon.org>
from `freeaddrinfo'.
`getifaddrs' and `freeifaddrs' are not in POSIX, they should not be
exposed along `freeaddrinfo' (through `__check_pf') which is POSIX.
* include/ifaddrs.h (__getifaddrs, __freeifaddrs): New declarations,
and use libc_hidden_def on them.
* inet/ifaddrs.c (__getifaddrs, __freeifaddrs): Use libc_hidden_def on
them.
* sysdeps/gnu/ifaddrs.c (__getifaddrs, __freeifaddrs): Likewise.
* inet/check_pf.c (__check_pf): Use __getifaddrs and __freeifaddrs
instead of getifaddrs and freeifaddrs.
---
ChangeLog | 7 +++++++
include/ifaddrs.h | 5 +++++
inet/check_pf.c | 4 ++--
inet/ifaddrs.c | 2 ++
sysdeps/gnu/ifaddrs.c | 2 ++
5 files changed, 18 insertions(+), 2 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 737dc8f808..8e26c003a8 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -17,6 +17,13 @@
redefine as weak alias.
* sysdeps/mach/hurd/rewinddir.c (__rewinddir): Use __seekdir instead
of seekdir.
+ * include/ifaddrs.h (__getifaddrs, __freeifaddrs): New declarations,
+ and use libc_hidden_def on them.
+ * inet/ifaddrs.c (__getifaddrs, __freeifaddrs): Use libc_hidden_def on
+ them.
+ * sysdeps/gnu/ifaddrs.c (__getifaddrs, __freeifaddrs): Likewise.
+ * inet/check_pf.c (__check_pf): Use __getifaddrs and __freeifaddrs
+ instead of getifaddrs and freeifaddrs.
2017-09-26 H.J. Lu <hongjiu.lu@intel.com>
diff --git a/include/ifaddrs.h b/include/ifaddrs.h
index 54f4b7a3ce..416118f1b3 100644
--- a/include/ifaddrs.h
+++ b/include/ifaddrs.h
@@ -9,6 +9,11 @@
libc_hidden_proto (getifaddrs)
libc_hidden_proto (freeifaddrs)
+extern int __getifaddrs (struct ifaddrs **__ifap);
+libc_hidden_proto (__getifaddrs)
+extern void __freeifaddrs (struct ifaddrs *__ifa);
+libc_hidden_proto (__freeifaddrs)
+
struct in6addrinfo
{
enum {
diff --git a/inet/check_pf.c b/inet/check_pf.c
index a56723a7df..84dd1699d5 100644
--- a/inet/check_pf.c
+++ b/inet/check_pf.c
@@ -32,7 +32,7 @@ __check_pf (bool *seen_ipv4, bool *seen_ipv6,
/* Get the interface list via getifaddrs. */
struct ifaddrs *ifa = NULL;
- if (getifaddrs (&ifa) != 0)
+ if (__getifaddrs (&ifa) != 0)
{
/* We cannot determine what interfaces are available. Be
pessimistic. */
@@ -51,7 +51,7 @@ __check_pf (bool *seen_ipv4, bool *seen_ipv6,
else if (runp->ifa_addr->sa_family == PF_INET6)
*seen_ipv6 = true;
- (void) freeifaddrs (ifa);
+ (void) __freeifaddrs (ifa);
}
diff --git a/inet/ifaddrs.c b/inet/ifaddrs.c
index 35cc277225..0a5c71c059 100644
--- a/inet/ifaddrs.c
+++ b/inet/ifaddrs.c
@@ -30,6 +30,7 @@ __getifaddrs (struct ifaddrs **ifap)
return -1;
}
weak_alias (__getifaddrs, getifaddrs)
+libc_hidden_def (__getifaddrs)
libc_hidden_weak (getifaddrs)
stub_warning (getifaddrs)
@@ -43,5 +44,6 @@ __freeifaddrs (struct ifaddrs *ifa)
abort ();
}
weak_alias (__freeifaddrs, freeifaddrs)
+libc_hidden_def (__freeifaddrs)
libc_hidden_weak (freeifaddrs)
stub_warning (freeifaddrs)
diff --git a/sysdeps/gnu/ifaddrs.c b/sysdeps/gnu/ifaddrs.c
index 37b3248669..80702eb1d1 100644
--- a/sysdeps/gnu/ifaddrs.c
+++ b/sysdeps/gnu/ifaddrs.c
@@ -151,6 +151,7 @@ __getifaddrs (struct ifaddrs **ifap)
return 0;
}
weak_alias (__getifaddrs, getifaddrs)
+libc_hidden_def (__getifaddrs)
#ifndef getifaddrs
libc_hidden_weak (getifaddrs)
#endif
@@ -161,4 +162,5 @@ __freeifaddrs (struct ifaddrs *ifa)
free (ifa);
}
weak_alias (__freeifaddrs, freeifaddrs)
+libc_hidden_def (__freeifaddrs)
libc_hidden_weak (freeifaddrs)
--
2.14.1