summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2017-10-01 15:20:47 -0700
committerH.J. Lu <hjl.tools@gmail.com>2017-10-01 15:21:00 -0700
commit9635ce69626bfe41196bdef8efe4aba8d8a7b58f (patch)
tree49b020ac6ac7c72bdd551f4b3e3ab9508c294b18
parent2e0a69097d38382fc26cce2a482e9ef2ddda52cf (diff)
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--ChangeLog18
-rw-r--r--include/aliases.h3
-rw-r--r--include/netdb.h30
-rw-r--r--include/rpc/netdb.h4
-rw-r--r--nss/getXXbyYY.c3
5 files changed, 44 insertions, 14 deletions
diff --git a/ChangeLog b/ChangeLog
index 905e7e8e9f..98d572b8da 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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);