From patchwork Wed Sep 27 23:17:42 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Samuel Thibault X-Patchwork-Id: 23185 Received: (qmail 80363 invoked by alias); 27 Sep 2017 23:17:51 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Delivered-To: mailing list libc-alpha@sourceware.org Received: (qmail 80271 invoked by uid 89); 27 Sep 2017 23:17:50 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-26.1 required=5.0 tests=BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, SPF_HELO_PASS, SPF_NEUTRAL autolearn=ham version=3.3.2 spammy= X-HELO: hera.aquilenet.fr From: Samuel Thibault To: libc-alpha@sourceware.org Cc: Samuel Thibault Subject: [hurd, commited 4/4] hurd: Fix `getifaddrs' and `freeifaddrs' symbol exposition Date: Thu, 28 Sep 2017 01:17:42 +0200 Message-Id: <20170927231742.9050-5-samuel.thibault@ens-lyon.org> In-Reply-To: <20170927231742.9050-1-samuel.thibault@ens-lyon.org> 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 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)