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.
This commit is contained in:
H.J. Lu 2017-10-01 15:20:47 -07:00
parent 2e0a69097d
commit 9635ce6962
5 changed files with 44 additions and 14 deletions

View File

@ -1,3 +1,21 @@
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]

View File

@ -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,

View File

@ -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);

View File

@ -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);

View File

@ -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);