diff options
author | Florian Weimer <fweimer@redhat.com> | 2021-07-07 18:33:52 +0200 |
---|---|---|
committer | Florian Weimer <fweimer@redhat.com> | 2021-07-07 18:33:52 +0200 |
commit | 6212bb67f4695962748a5981e1b9fea105af74f6 (patch) | |
tree | 0b6a4e918af592a90eb20ffdb2d28ece568ab4bd /nss | |
parent | 36861a968ad143f662db489cd8f859186ee375c2 (diff) | |
download | glibc-6212bb67f4695962748a5981e1b9fea105af74f6.zip glibc-6212bb67f4695962748a5981e1b9fea105af74f6.tar.gz glibc-6212bb67f4695962748a5981e1b9fea105af74f6.tar.bz2 |
nss_files: Move into libc
This is the first step towards fixing bug 27959.
Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Diffstat (limited to 'nss')
-rw-r--r-- | nss/Makefile | 13 | ||||
-rw-r--r-- | nss/Versions | 13 | ||||
-rw-r--r-- | nss/nss_files/files-alias.c | 10 | ||||
-rw-r--r-- | nss/nss_files/files-hosts.c | 7 | ||||
-rw-r--r-- | nss/nss_files/files-netgrp.c | 6 | ||||
-rw-r--r-- | nss/nss_files/files-network.c | 5 | ||||
-rw-r--r-- | nss/nss_files/files-parse.c | 8 | ||||
-rw-r--r-- | nss/nss_readline.c | 4 |
8 files changed, 31 insertions, 35 deletions
diff --git a/nss/Makefile b/nss/Makefile index 271a0e7..7259e83 100644 --- a/nss/Makefile +++ b/nss/Makefile @@ -98,9 +98,11 @@ subdir-dirs = $(services:%=nss_%) vpath %.c $(subdir-dirs) ../locale/programs ../intl -libnss_files-routines := $(addprefix files-, \ - $(filter-out key, $(databases))) \ - files-initgroups files-init +routines += \ + $(addprefix files-, $(filter-out key, $(databases))) \ + files-init \ + files-initgroups \ + # routines libnss_db-dbs := $(addprefix db-,\ $(filter-out hosts network key alias,\ @@ -116,12 +118,9 @@ libnss_compat-routines := $(addprefix compat-,grp pwd spwd initgroups) \ install-others += $(inst_vardbdir)/Makefile # Build static module into libc if requested -libnss_files-inhibit-o = $(filter-out .os,$(object-suffixes)) libnss_db-inhibit-o = $(filter-out .os,$(object-suffixes)) libnss_compat-inhibit-o = $(filter-out .os,$(object-suffixes)) ifeq ($(build-static-nss),yes) -routines += $(libnss_files-routines) -static-only-routines += $(libnss_files-routines) tests-static += tst-nss-static endif extra-test-objs += nss_test1.os nss_test2.os @@ -138,8 +137,6 @@ libnss-libc = $(common-objpfx)linkobj/libc.so # for new links: $(services:%=$(objpfx)libnss_%.so): libc-for-link = $(libnss-libc) -$(objpfx)libnss_db.so: $(objpfx)libnss_files.so - $(libnss_db-dbs:%=$(objpfx)%.c): $(objpfx)db-%.c: nss_files/files-%.c @rm -f $@.new (echo '#define EXTERN_PARSER';\ diff --git a/nss/Versions b/nss/Versions index 7b040b4..e551524 100644 --- a/nss/Versions +++ b/nss/Versions @@ -23,11 +23,8 @@ libc { __nss_files_data_open; __nss_files_data_put; __nss_files_data_setent; - } -} -libnss_files { - GLIBC_PRIVATE { + # Routines formerly in libnss_files.so.2. _nss_files_setaliasent; _nss_files_endaliasent; _nss_files_getaliasbyname_r; @@ -113,6 +110,14 @@ libnss_files { } } +libnss_files { + GLIBC_PRIVATE { + # Keep a version node (with a synthesized local: * directive) so that + # __bss_* symbols are hidden on targets that need it. + __libnss_files_version_placeholder; + } +} + libnss_db { GLIBC_PRIVATE { _nss_db_setetherent; diff --git a/nss/nss_files/files-alias.c b/nss/nss_files/files-alias.c index 9624b62..75d91e0 100644 --- a/nss/nss_files/files-alias.c +++ b/nss/nss_files/files-alias.c @@ -98,7 +98,7 @@ get_next_alias (FILE *stream, const char *match, struct aliasent *result, /* Read the first line. It must contain the alias name and possibly some alias names. */ first_unused[room_left - 1] = '\xff'; - line = fgets_unlocked (first_unused, room_left, stream); + line = __fgets_unlocked (first_unused, room_left, stream); if (line == NULL) /* Nothing to read. */ break; @@ -187,7 +187,7 @@ get_next_alias (FILE *stream, const char *match, struct aliasent *result, /* If the file does not exist we simply ignore the statement. */ if (listfile != NULL - && (old_line = strdup (line)) != NULL) + && (old_line = __strdup (line)) != NULL) { while (! feof_unlocked (listfile)) { @@ -199,8 +199,8 @@ get_next_alias (FILE *stream, const char *match, struct aliasent *result, } first_unused[room_left - 1] = '\xff'; - line = fgets_unlocked (first_unused, room_left, - listfile); + line = __fgets_unlocked (first_unused, room_left, + listfile); if (line == NULL) break; if (first_unused[room_left - 1] != '\xff') @@ -302,7 +302,7 @@ get_next_alias (FILE *stream, const char *match, struct aliasent *result, /* The just read character is a white space and so can be ignored. */ first_unused[room_left - 1] = '\xff'; - line = fgets_unlocked (first_unused, room_left, stream); + line = __fgets_unlocked (first_unused, room_left, stream); if (line == NULL) { /* Continuation line without any data and diff --git a/nss/nss_files/files-hosts.c b/nss/nss_files/files-hosts.c index 1dd51d1..894b85d 100644 --- a/nss/nss_files/files-hosts.c +++ b/nss/nss_files/files-hosts.c @@ -57,12 +57,13 @@ LINE_PARSER STRING_FIELD (addr, isspace, 1); /* Parse address. */ - if (inet_pton (af == AF_UNSPEC ? AF_INET : af, addr, entdata->host_addr) + if (__inet_pton (af == AF_UNSPEC ? AF_INET : af, addr, entdata->host_addr) > 0) af = af == AF_UNSPEC ? AF_INET : af; else { - if (af == AF_INET && inet_pton (AF_INET6, addr, entdata->host_addr) > 0) + if (af == AF_INET + && __inet_pton (AF_INET6, addr, entdata->host_addr) > 0) { if (IN6_IS_ADDR_V4MAPPED (entdata->host_addr)) memcpy (entdata->host_addr, entdata->host_addr + 12, INADDRSZ); @@ -76,7 +77,7 @@ LINE_PARSER return 0; } else if (af == AF_UNSPEC - && inet_pton (AF_INET6, addr, entdata->host_addr) > 0) + && __inet_pton (AF_INET6, addr, entdata->host_addr) > 0) af = AF_INET6; else /* Illegal address: ignore line. */ diff --git a/nss/nss_files/files-netgrp.c b/nss/nss_files/files-netgrp.c index f8c821c..be9c72a 100644 --- a/nss/nss_files/files-netgrp.c +++ b/nss/nss_files/files-netgrp.c @@ -32,7 +32,7 @@ NSS_DECLARE_MODULE_FUNCTIONS (files) #define DATAFILE "/etc/netgroup" -libnss_files_hidden_proto (_nss_files_endnetgrent) +libc_hidden_proto (_nss_files_endnetgrent) #define EXPAND(needed) \ do \ @@ -164,7 +164,7 @@ _nss_files_endnetgrent (struct __netgrent *result) result->cursor = NULL; return NSS_STATUS_SUCCESS; } -libnss_files_hidden_def (_nss_files_endnetgrent) +libc_hidden_def (_nss_files_endnetgrent) static char * strip_whitespace (char *str) @@ -279,7 +279,7 @@ _nss_netgroup_parseline (char **cursor, struct __netgrent *result, return status; } -libnss_files_hidden_def (_nss_netgroup_parseline) +libc_hidden_def (_nss_netgroup_parseline) enum nss_status diff --git a/nss/nss_files/files-network.c b/nss/nss_files/files-network.c index 9cd7d7d..75c9f8a 100644 --- a/nss/nss_files/files-network.c +++ b/nss/nss_files/files-network.c @@ -21,8 +21,7 @@ #include <netdb.h> #include <stdint.h> #include <nss.h> - -NSS_DECLARE_MODULE_FUNCTIONS (files) +#include <nss_files.h> #define ENTNAME netent #define DATABASE "networks" @@ -71,7 +70,7 @@ LINE_PARSER *cp = '\0'; addr = newp; } - result->n_net = inet_network (addr); + result->n_net = __inet_network (addr); result->n_addrtype = AF_INET; }) diff --git a/nss/nss_files/files-parse.c b/nss/nss_files/files-parse.c index 68c51c7..997eac5 100644 --- a/nss/nss_files/files-parse.c +++ b/nss/nss_files/files-parse.c @@ -74,13 +74,7 @@ struct parser_data /* Export the line parser function so it can be used in nss_db. */ # define parser_stclass /* Global */ # define parse_line CONCAT(_nss_files_parse_,ENTNAME) -# if IS_IN (libc) -/* We are defining one of the functions that actually lives in libc - because it is used to implement fget*ent and suchlike. */ -# define nss_files_parse_hidden_def(name) libc_hidden_def (name) -# else -# define nss_files_parse_hidden_def(name) libnss_files_hidden_def (name) -# endif +# define nss_files_parse_hidden_def(name) libc_hidden_def (name) #endif diff --git a/nss/nss_readline.c b/nss/nss_readline.c index 4b3ecbc..a2f397a 100644 --- a/nss/nss_readline.c +++ b/nss/nss_readline.c @@ -40,7 +40,7 @@ __nss_readline (FILE *fp, char *buf, size_t len, off64_t *poffset) *poffset = __ftello64 (fp); buf[len - 1] = '\xff'; /* Marker to recognize truncation. */ - if (fgets_unlocked (buf, len, fp) == NULL) + if (__fgets_unlocked (buf, len, fp) == NULL) { if (feof_unlocked (fp)) { @@ -61,7 +61,7 @@ __nss_readline (FILE *fp, char *buf, size_t len, off64_t *poffset) line on the next call. */ return __nss_readline_seek (fp, *poffset); - /* fgets_unlocked succeeded. */ + /* __fgets_unlocked succeeded. */ /* Remove leading whitespace. */ char *p = buf; |