diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2017-10-01 15:20:47 -0700 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2017-10-01 15:21:00 -0700 |
commit | 9635ce69626bfe41196bdef8efe4aba8d8a7b58f (patch) | |
tree | 49b020ac6ac7c72bdd551f4b3e3ab9508c294b18 | |
parent | 2e0a69097d38382fc26cce2a482e9ef2ddda52cf (diff) | |
download | glibc-9635ce69626bfe41196bdef8efe4aba8d8a7b58f.tar.gz |
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.
-rw-r--r-- | ChangeLog | 18 | ||||
-rw-r--r-- | include/aliases.h | 3 | ||||
-rw-r--r-- | include/netdb.h | 30 | ||||
-rw-r--r-- | include/rpc/netdb.h | 4 | ||||
-rw-r--r-- | nss/getXXbyYY.c | 3 |
5 files changed, 44 insertions, 14 deletions
@@ -1,6 +1,24 @@ 2017-10-01 H.J. Lu <hongjiu.lu@intel.com> [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. + +2017-10-01 H.J. Lu <hongjiu.lu@intel.com> + + [BZ #18822] * include/stdio.h (__fcloseall): Add attribute_hidden. (__getline): Likewise. (__path_search): Likewise. 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); diff --git a/nss/getXXbyYY.c b/nss/getXXbyYY.c index a439b816f7..f420b34fb8 100644 --- a/nss/getXXbyYY.c +++ b/nss/getXXbyYY.c @@ -79,7 +79,8 @@ /* Prototype for reentrant version we use here. */ extern int INTERNAL (REENTRANT_NAME) (ADD_PARAMS, LOOKUP_TYPE *resbuf, char *buffer, size_t buflen, - LOOKUP_TYPE **result H_ERRNO_PARM); + LOOKUP_TYPE **result H_ERRNO_PARM) + attribute_hidden; /* We need to protect the dynamic buffer handling. */ __libc_lock_define_initialized (static, lock); |