aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSamuel Thibault <samuel.thibault@ens-lyon.org>2017-09-28 00:19:18 +0200
committerSamuel Thibault <samuel.thibault@ens-lyon.org>2017-09-28 01:05:18 +0200
commit4009ddc69225d571772aaea597615a0c032e14ab (patch)
tree5b82cda9a1e05c472d5f008437117588cbaca6bb
parent64a4af28a62e9f305c82bc9649bbe065fffdeb0d (diff)
downloadglibc-4009ddc69225d571772aaea597615a0c032e14ab.zip
glibc-4009ddc69225d571772aaea597615a0c032e14ab.tar.gz
glibc-4009ddc69225d571772aaea597615a0c032e14ab.tar.bz2
hurd: Fix `getifaddrs' and `freeifaddrs' symbol exposition
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.
-rw-r--r--ChangeLog7
-rw-r--r--include/ifaddrs.h5
-rw-r--r--inet/check_pf.c4
-rw-r--r--inet/ifaddrs.c2
-rw-r--r--sysdeps/gnu/ifaddrs.c2
5 files changed, 18 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 737dc8f..8e26c00 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 54f4b7a..416118f 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 a56723a..84dd169 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 35cc277..0a5c71c 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 37b3248..80702eb 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)