Mark internal nscd functions with attribute_hidden [BZ #18822]

Mark internal nscd functions with attribute_hidden to allow direct
access within libc.so and libc.a without using GOT nor PLT.

	[BZ #18822]
	* nscd/nscd-client.h (__nscd_get_map_ref): Add attribute_hidden.
	(__nscd_unmap): Likewise.
	(__nscd_cache_search): Likewise.
	(__nscd_get_nl_timestamp): Likewise.
	(__nscd_getpwnam_r): Likewise.
	(__nscd_getpwuid_r): Likewise.
	(__nscd_getgrnam_r): Likewise.
	(__nscd_getgrgid_r): Likewise.
	(__nscd_gethostbyname_r): Likewise.
	(__nscd_gethostbyname2_r): Likewise.
	(__nscd_gethostbyaddr_r): Likewise.
	(__nscd_getai): Likewise.
	(__nscd_getgrouplist): Likewise.
	(__nscd_getservbyname_r): Likewise.
	(__nscd_getservbyport_r): Likewise.
	(__nscd_innetgr): Likewise.
	(__nscd_setnetgrent): Likewise.
This commit is contained in:
H.J. Lu 2017-10-01 15:16:13 -07:00
parent a2ca165230
commit a4338d994f
3 changed files with 50 additions and 17 deletions

View File

@ -1,3 +1,24 @@
2017-10-01 H.J. Lu <hongjiu.lu@intel.com>
[BZ #18822]
* nscd/nscd-client.h (__nscd_get_map_ref): Add attribute_hidden.
(__nscd_unmap): Likewise.
(__nscd_cache_search): Likewise.
(__nscd_get_nl_timestamp): Likewise.
(__nscd_getpwnam_r): Likewise.
(__nscd_getpwuid_r): Likewise.
(__nscd_getgrnam_r): Likewise.
(__nscd_getgrgid_r): Likewise.
(__nscd_gethostbyname_r): Likewise.
(__nscd_gethostbyname2_r): Likewise.
(__nscd_gethostbyaddr_r): Likewise.
(__nscd_getai): Likewise.
(__nscd_getgrouplist): Likewise.
(__nscd_getservbyname_r): Likewise.
(__nscd_getservbyport_r): Likewise.
(__nscd_innetgr): Likewise.
(__nscd_setnetgrent): Likewise.
2017-10-01 H.J. Lu <hongjiu.lu@intel.com>
[BZ #18822]

View File

@ -400,10 +400,12 @@ extern struct mapped_database *__nscd_get_mapping (request_type type,
extern struct mapped_database *__nscd_get_map_ref (request_type type,
const char *name,
volatile struct locked_map_ptr *mapptr,
int *gc_cyclep);
int *gc_cyclep)
attribute_hidden;
/* Unmap database. */
extern void __nscd_unmap (struct mapped_database *mapped);
extern void __nscd_unmap (struct mapped_database *mapped)
attribute_hidden;
/* Drop reference of mapping. */
static int
@ -433,7 +435,8 @@ extern struct datahead *__nscd_cache_search (request_type type,
const char *key,
size_t keylen,
const struct mapped_database *mapped,
size_t datalen);
size_t datalen)
attribute_hidden;
/* Wrappers around read, readv and write that only read/write less than LEN
bytes on error or EOF. */
@ -447,6 +450,7 @@ extern ssize_t sendfileall (int tofd, int fromfd, off_t off, size_t len)
attribute_hidden;
/* Get netlink timestamp counter from mapped area or zero. */
extern uint32_t __nscd_get_nl_timestamp (void);
extern uint32_t __nscd_get_nl_timestamp (void)
attribute_hidden;
#endif /* nscd.h */

View File

@ -39,41 +39,49 @@ extern int __nss_not_use_nscd_netgroup attribute_hidden;
extern int __nscd_getpwnam_r (const char *name, struct passwd *resultbuf,
char *buffer, size_t buflen,
struct passwd **result);
struct passwd **result) attribute_hidden;
extern int __nscd_getpwuid_r (uid_t uid, struct passwd *resultbuf,
char *buffer, size_t buflen,
struct passwd **result);
struct passwd **result) attribute_hidden;
extern int __nscd_getgrnam_r (const char *name, struct group *resultbuf,
char *buffer, size_t buflen,
struct group **result);
struct group **result) attribute_hidden;
extern int __nscd_getgrgid_r (gid_t gid, struct group *resultbuf,
char *buffer, size_t buflen,
struct group **result);
struct group **result) attribute_hidden;
extern int __nscd_gethostbyname_r (const char *name,
struct hostent *resultbuf,
char *buffer, size_t buflen,
struct hostent **result, int *h_errnop);
struct hostent **result, int *h_errnop)
attribute_hidden;
extern int __nscd_gethostbyname2_r (const char *name, int af,
struct hostent *resultbuf,
char *buffer, size_t buflen,
struct hostent **result, int *h_errnop);
struct hostent **result, int *h_errnop)
attribute_hidden;
extern int __nscd_gethostbyaddr_r (const void *addr, socklen_t len, int type,
struct hostent *resultbuf,
char *buffer, size_t buflen,
struct hostent **result, int *h_errnop);
struct hostent **result, int *h_errnop)
attribute_hidden;
extern int __nscd_getai (const char *key, struct nscd_ai_result **result,
int *h_errnop);
int *h_errnop) attribute_hidden;
extern int __nscd_getgrouplist (const char *user, gid_t group, long int *size,
gid_t **groupsp, long int limit);
gid_t **groupsp, long int limit)
attribute_hidden;
extern int __nscd_getservbyname_r (const char *name, const char *proto,
struct servent *result_buf, char *buf,
size_t buflen, struct servent **result);
size_t buflen, struct servent **result)
attribute_hidden;
extern int __nscd_getservbyport_r (int port, const char *proto,
struct servent *result_buf, char *buf,
size_t buflen, struct servent **result);
size_t buflen, struct servent **result)
attribute_hidden;
extern int __nscd_innetgr (const char *netgroup, const char *host,
const char *user, const char *domain);
extern int __nscd_setnetgrent (const char *group, struct __netgrent *datap);
const char *user, const char *domain)
attribute_hidden;
extern int __nscd_setnetgrent (const char *group, struct __netgrent *datap)
attribute_hidden;
#endif /* _NSCD_PROTO_H */