From 9635ce69626bfe41196bdef8efe4aba8d8a7b58f Mon Sep 17 00:00:00 2001 From: "H.J. Lu" Date: Sun, 1 Oct 2017 15:20:47 -0700 Subject: Mark internal getXXXbyYYY functions with attribute_hidden [BZ #18822] Mark internal getXXXbyYYY functions with attribute_hidden to allow direct access within libc.so and libc.a without using GOT nor PLT. [BZ #18822] * include/aliases.h (__getaliasbyname_r): Add attribute_hidden. * include/netdb.h (__gethostbyaddr_r): Likewise. (__gethostbyname_r): Likewise. (__gethostbyname2_r): Likewise. (__getnetbyaddr_r): Likewise. (__getnetbyname_r): Likewise. (__getservbyname_r): Likewise. (__getservbyport_r): Likewise. (__getprotobyname_r): Likewise. (__getprotobynumber_r): Likewise. (__getnetgrent_r): Likewise. * include/rpc/netdb.h (__getrpcbyname_r): Likewise. (__getrpcbynumber_r): Likewise. * nss/getXXbyYY.c (INTERNAL (REENTRANT_NAME)): Likewise. --- include/aliases.h | 3 ++- include/netdb.h | 30 ++++++++++++++++++++---------- include/rpc/netdb.h | 4 ++-- 3 files changed, 24 insertions(+), 13 deletions(-) (limited to 'include') diff --git a/include/aliases.h b/include/aliases.h index ece69ebe43..11b81d4d24 100644 --- a/include/aliases.h +++ b/include/aliases.h @@ -14,7 +14,8 @@ extern int __old_getaliasent_r (struct aliasent *__restrict __result_buf, extern int __getaliasbyname_r (const char *__restrict __name, struct aliasent *__restrict __result_buf, char *__restrict __buffer, size_t __buflen, - struct aliasent **__restrict __result); + struct aliasent **__restrict __result) + attribute_hidden; extern int __old_getaliasbyname_r (const char *__restrict __name, struct aliasent *__restrict __result_buf, char *__restrict __buffer, size_t __buflen, diff --git a/include/netdb.h b/include/netdb.h index d425a64506..e230b1f4fc 100644 --- a/include/netdb.h +++ b/include/netdb.h @@ -43,7 +43,8 @@ extern int __gethostbyaddr_r (const void *__restrict __addr, struct hostent *__restrict __result_buf, char *__restrict __buf, size_t __buflen, struct hostent **__restrict __result, - int *__restrict __h_errnop); + int *__restrict __h_errnop) + attribute_hidden; extern int __old_gethostbyaddr_r (const void *__restrict __addr, socklen_t __len, int __type, struct hostent *__restrict __result_buf, @@ -63,7 +64,8 @@ extern int __gethostbyname_r (const char *__restrict __name, struct hostent *__restrict __result_buf, char *__restrict __buf, size_t __buflen, struct hostent **__restrict __result, - int *__restrict __h_errnop); + int *__restrict __h_errnop) + attribute_hidden; extern int __old_gethostbyname_r (const char *__restrict __name, struct hostent *__restrict __result_buf, char *__restrict __buf, size_t __buflen, @@ -74,7 +76,8 @@ extern int __gethostbyname2_r (const char *__restrict __name, int __af, struct hostent *__restrict __result_buf, char *__restrict __buf, size_t __buflen, struct hostent **__restrict __result, - int *__restrict __h_errnop); + int *__restrict __h_errnop) + attribute_hidden; extern int __old_gethostbyname2_r (const char *__restrict __name, int __af, struct hostent *__restrict __result_buf, char *__restrict __buf, size_t __buflen, @@ -101,7 +104,8 @@ extern int __getnetbyaddr_r (uint32_t __net, int __type, struct netent *__restrict __result_buf, char *__restrict __buf, size_t __buflen, struct netent **__restrict __result, - int *__restrict __h_errnop); + int *__restrict __h_errnop) + attribute_hidden; extern int __old_getnetbyaddr_r (uint32_t __net, int __type, struct netent *__restrict __result_buf, char *__restrict __buf, size_t __buflen, @@ -112,7 +116,8 @@ extern int __getnetbyname_r (const char *__restrict __name, struct netent *__restrict __result_buf, char *__restrict __buf, size_t __buflen, struct netent **__restrict __result, - int *__restrict __h_errnop); + int *__restrict __h_errnop) + attribute_hidden; extern int __old_getnetbyname_r (const char *__restrict __name, struct netent *__restrict __result_buf, char *__restrict __buf, size_t __buflen, @@ -131,7 +136,8 @@ extern int __getservbyname_r (const char *__restrict __name, const char *__restrict __proto, struct servent *__restrict __result_buf, char *__restrict __buf, size_t __buflen, - struct servent **__restrict __result); + struct servent **__restrict __result) + attribute_hidden; extern int __old_getservbyname_r (const char *__restrict __name, const char *__restrict __proto, struct servent *__restrict __result_buf, @@ -142,7 +148,8 @@ extern int __getservbyport_r (int __port, const char *__restrict __proto, struct servent *__restrict __result_buf, char *__restrict __buf, size_t __buflen, - struct servent **__restrict __result); + struct servent **__restrict __result) + attribute_hidden; extern int __old_getservbyport_r (int __port, const char *__restrict __proto, struct servent *__restrict __result_buf, @@ -160,7 +167,8 @@ extern int __old_getprotoent_r (struct protoent *__restrict __result_buf, extern int __getprotobyname_r (const char *__restrict __name, struct protoent *__restrict __result_buf, char *__restrict __buf, size_t __buflen, - struct protoent **__restrict __result); + struct protoent **__restrict __result) + attribute_hidden; extern int __old_getprotobyname_r (const char *__restrict __name, struct protoent *__restrict __result_buf, char *__restrict __buf, size_t __buflen, @@ -169,7 +177,8 @@ extern int __old_getprotobyname_r (const char *__restrict __name, extern int __getprotobynumber_r (int __proto, struct protoent *__restrict __res_buf, char *__restrict __buf, size_t __buflen, - struct protoent **__restrict __result); + struct protoent **__restrict __result) + attribute_hidden; extern int __old_getprotobynumber_r (int __proto, struct protoent *__restrict __res_buf, char *__restrict __buf, size_t __buflen, @@ -178,7 +187,8 @@ extern int __old_getprotobynumber_r (int __proto, extern int __getnetgrent_r (char **__restrict __hostp, char **__restrict __userp, char **__restrict __domainp, - char *__restrict __buffer, size_t __buflen); + char *__restrict __buffer, size_t __buflen) + attribute_hidden; extern int ruserpass (const char *host, const char **aname, const char **apass); diff --git a/include/rpc/netdb.h b/include/rpc/netdb.h index 9b84668be7..eb75f3f58c 100644 --- a/include/rpc/netdb.h +++ b/include/rpc/netdb.h @@ -5,7 +5,7 @@ extern int __getrpcbyname_r (const char *__name, struct rpcent *__result_buf, char *__buffer, size_t __buflen, - struct rpcent **__result); + struct rpcent **__result) attribute_hidden; extern int __old_getrpcbyname_r (const char *__name, struct rpcent *__result_buf, char *__buffer, size_t __buflen, @@ -13,7 +13,7 @@ extern int __old_getrpcbyname_r (const char *__name, extern int __getrpcbynumber_r (int __number, struct rpcent *__result_buf, char *__buffer, size_t __buflen, - struct rpcent **__result); + struct rpcent **__result) attribute_hidden; extern int __old_getrpcbynumber_r (int __number, struct rpcent *__result_buf, char *__buffer, size_t __buflen, struct rpcent **__result); -- cgit 1.4.1