[PATCH 2/3] Mark internal nss symbols with attribute_hidden [BZ #18822]
Florian Weimer
fw@deneb.enyo.de
Sun Aug 20 08:09:00 GMT 2017
* H. J. Lu:
> extern service_user *__nss_group_database attribute_hidden;
> -service_user *__nss_initgroups_database;
> +service_user *__nss_initgroups_database attribute_hidden;
> static bool use_initgroups_entry;
Please use DEFINE_DATABASE in nsswitch.h instead to generate all
__nss_*_database declarations (and remove the declaration from
nss/XXX-lookup.c).
> diff --git a/nss/getXXent.c b/nss/getXXent.c
> index aad374197f..31bd24b924 100644
> --- a/nss/getXXent.c
> +++ b/nss/getXXent.c
> @@ -56,7 +56,7 @@
> /* Prototype of the reentrant version. */
> extern int INTERNAL (REENTRANT_GETNAME) (LOOKUP_TYPE *resbuf, char *buffer,
> size_t buflen, LOOKUP_TYPE **result
> - H_ERRNO_PARM);
> + H_ERRNO_PARM) attribute_hidden;
Ideally, we should have a full complement of prototypes in include/,
so that we get some type safety here. But until that, this part looks
fine.
> /* Flags whether custom rules for database is set. */
> -extern bool __nss_database_custom[NSS_DBSIDX_max];
> +extern bool __nss_database_custom[NSS_DBSIDX_max] attribute_hidden;
The entire declaration should probably be guarded with #ifndef
USE_NSCD because if the symbol is used from nscd, it would give wrong
results.
More information about the Libc-alpha
mailing list