From 36e7ae1e9d3b6a434e119aab4d10176aaaddf0c3 Mon Sep 17 00:00:00 2001 From: "H.J. Lu" Date: Sun, 1 Oct 2017 17:49:47 -0700 Subject: Hide internal __nis_hash function [BZ #18822] Hide internal __nis_hash function to allow direct access within libc.so and libc.a without using GOT nor PLT. [BZ #18822] * nscd/nscd_helper.c (__nis_hash): New prototype. --- ChangeLog | 5 +++++ nscd/nscd_helper.c | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/ChangeLog b/ChangeLog index dc58bf1..0563a75 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,6 +1,11 @@ 2017-10-01 H.J. Lu [BZ #18822] + * nscd/nscd_helper.c (__nis_hash): New prototype. + +2017-10-01 H.J. Lu + + [BZ #18822] * include/termios.h (__tcgetattr): Add libc_hidden_proto. * sysdeps/unix/bsd/tcgetattr.c (__tcgetattr): Add libc_hidden_def. diff --git a/nscd/nscd_helper.c b/nscd/nscd_helper.c index a225623..56e6d14 100644 --- a/nscd/nscd_helper.c +++ b/nscd/nscd_helper.c @@ -443,6 +443,11 @@ __nscd_get_map_ref (request_type type, const char *name, #define MINIMUM_HASHENTRY_SIZE \ (offsetof (struct hashentry, dellist) + sizeof (int32_t)) +/* __nis_hash is defined in nis_hash.c which is included both libnsl + and libc. Since the one in libnsl is exported and the one in libc + is hidden, __nis_hash is marked as hidden where it is referenced, + not where it is defined. */ +extern __typeof (__nis_hash) __nis_hash attribute_hidden; /* Don't return const struct datahead *, as eventhough the record is normally constant, it can change arbitrarily during nscd -- cgit v1.1