This is the mail archive of the
libc-alpha@sourceware.cygnus.com
mailing list for the glibc project.
Re: [bill@kayhay.com] libc/1625: resolver ignores "multi on" in /etc/host.conf
- To: Andreas Jaeger <aj at suse dot de>
- Subject: Re: [bill@kayhay.com] libc/1625: resolver ignores "multi on" in /etc/host.conf
- From: "H . J . Lu" <hjl at lucon dot org>
- Date: Sat, 4 Mar 2000 16:50:50 -0800
- Cc: bill at kayhay dot com,libc-alpha Mailinglist <libc-alpha at sourceware dot cygnus dot com>
- References: <u8itz4lan7.fsf@gromit.rhein-neckar.de> <20000303190637.A1202@lucon.org>
On Fri, Mar 03, 2000 at 07:06:37PM -0800, H . J . Lu wrote:
> On Fri, Mar 03, 2000 at 09:29:16AM +0100, Andreas Jaeger wrote:
> >
> > Hi glibc folks,
> >
> > we received the appended bug report. IMHO we cannot support "multi on"
> > at all with glibc (at least not in /etc/hosts) - and should remove the
> > support for parsing "multi on" from res_hconf.c. We parse this
> > correctly - but never use it at all.
> >
> > Does somebody see a way to fix this?
> >
>
> Here is a patch. It seems to work for me.
>
>
My last patch is incomplete. Here is a new one. It passed "make check"
on glibc 2.1.3.
H.J.
----
2000-03-04 H.J. Lu <hjl@gnu.org>
* resolv/Versions (_res_hconf): Added to libc for GLIBC_2.1.3.
* nss/nss_files/files-parse.c (parse_line): Take one more arg
to return the buffer end.
(parse_list): Likewise.
* grp/fgetgrent_r.c (__fgetgrent_r): Pass NULL to parse_line ().
* pwd/fgetpwent_r.c (__fgetpwent_r): Likewise.
* shadow/fgetspent_r.c (__fgetspent_r): Likewise.
* shadow/sgetspent_r.c (__sgetspent_r): Likewise.
* hesiod/nss_hesiod/hesiod-service.c (lookup): Likewise.
* hesiod/nss_hesiod/hesiod-grp.c (lookup): Passs NULL to
_nss_files_parse_XXent ().
* hesiod/nss_hesiod/hesiod-pwd.c (lookup): Likewise.
* nis/nss_compat/compat-grp.c (getgrent_next_nis): Likewise.
(getgrnam_plusgroup): Likewise.
(getgrent_next_file): Likewise.
(internal_getgrnam_r): Likewise.
(getgrgid_plusgroup): Likewise.
(internal_getgrgid_r): Likewise.
* nis/nss_compat/compat-initgroups.c (getgrent_next_nis):
Likewise.
(getgrnam_plusgroup): Likewise.
(getgrent_next_file): Likewise.
* nis/nss_compat/compat-pwd.c (getpwent_next_nis_netgr):
Likewise.
(getpwent_next_nis): Likewise.
(getpwnam_plususer): Likewise.
(getpwent_next_file): Likewise.
(internal_getpwnam_r): Likewise.
(getpwuid_plususer): Likewise.
(internal_getpwuid_r): Likewise.
* nis/nss_compat/compat-spwd.c (getspent_next_nis_netgr):
Likewise.
(getspent_next_nis): Likewise.
(getspnam_plususer): Likewise.
(getspent_next_file): Likewise.
(internal_getspnam_r): Likewise.
nis/nss_nis/nis-ethers.c (internal_nis_getetherent_r):
Likewise.
(_nss_nis_gethostton_r): Likewise.
(_nss_nis_getntohost_r): Likewise.
* nis/nss_nis/nis-grp.c (internal_nis_getgrent_r): Likewise.
(_nss_nis_getgrnam_r): Likewise.
(_nss_nis_getgrgid_r): Likewise.
* nis/nss_nis/nis-hosts.c (internal_nis_gethostent_r):
Likewise.
(_nss_nis_gethostbyname2_r): Likewise.
(_nss_nis_gethostbyaddr_r): Likewise.
(_nss_nis_gethostbyaddr_r): Likewise.
* nis/nss_nis/nis-initgroups.c (internal_getgrent_r): Likewise.
* nis/nss_nis/nis-network.c (internal_nis_getnetent_r):
Likewise.
(_nss_nis_getnetbyname_r): Likewise.
(_nss_nis_getnetbyaddr_r): Likewise.
* nis/nss_nis/nis-proto.c (internal_nis_getprotoent_r):
Likewise.
(_nss_nis_getprotobyname_r): Likewise.
(_nss_nis_getprotobynumber_r): Likewise.
* nis/nss_nis/nis-pwd.c (internal_nis_getpwent_r): Likewise.
(_nss_nis_getpwnam_r): Likewise.
(_nss_nis_getpwuid_r): Likewise.
* nis/nss_nis/nis-rpc.c (internal_nis_getrpcent_r): Likewise.
(_nss_nis_getrpcbynumber_r): Likewise.
* nis/nss_nis/nis-service.c (internal_nis_getservent_r):
Likewise.
(_nss_nis_getservbyname_r): Likewise.
(_nss_nis_getservbyport_r): Likewise.
* nis/nss_nis/nis-spwd.c (internal_nis_getspent_r): Likewise.
(_nss_nis_getspnam_r): Likewise.
* nss/nss_db/db-XXX.c (DB_LOOKUP): Add prologue and epilogue.
* nss/nss_files/files-XXX.c (internal_getent): Add bufend to
return the buffer end.
(DB_LOOKUP): Add prologue and epilogue. Used by gethostbyname.
* nss/nss_files/files-ethers.c: Pass empty prologue and
epilogue to DB_LOOKUP.
* nss/nss_files/files-grp.c: Likewise.
* nss/nss_files/files-network.c: Likewise.
* nss/nss_files/files-proto.c: Likewise.
* nss/nss_files/files-pwd.c: Likewise.
* nss/nss_files/files-rpc.c: Likewise.
* nss/nss_files/files-service.c: Likewise.
* nss/nss_files/files-spwd.c: Likewise.
* nss/nss_files/files-hosts.c: Include <resolv/res_hconf.h>.
(hostent_data): Use IN6ADDRSZ instead of 16 to hold IPv4/IPv6
address.
(PROLOGUE): New.
(EPILOGUE): New.
(COPY_H_ADDR_LIST): New.
Pass PROLOGUE/EPILOGUE to DB_LOOKUP and replace
LOOKUP_NAME_CASE with COPY_H_ADDR_LIST.
Index: nss/nss_db/db-XXX.c
===================================================================
RCS file: /work/cvs/gnu/glibc-2.1/nss/nss_db/db-XXX.c,v
retrieving revision 1.1.1.11
diff -u -p -r1.1.1.11 db-XXX.c
--- nss/nss_db/db-XXX.c 1998/11/19 18:45:50 1.1.1.11
+++ nss/nss_db/db-XXX.c 2000/03/04 18:21:43
@@ -211,7 +211,7 @@ lookup (DBT *key, struct STRUCTURE *resu
while (isspace (*p))
++p;
- err = parse_line (p, result, buffer, buflen, errnop);
+ err = parse_line (p, result, buffer, buflen, NULL, errnop);
if (err == 0)
{
@@ -259,9 +259,13 @@ lookup (DBT *key, struct STRUCTURE *resu
PROTO describes the arguments for the lookup key;
e.g. `const char *name'.
+ PROLOGUE ignored here but used by ../nss_files/files-XXX.c.
+
+ EPILOGUE ignored here but used by ../nss_files/files-XXX.c.
+
BREAK_IF_MATCH is ignored, but used by ../nss_files/files-XXX.c. */
-#define DB_LOOKUP(name, keysize, keypattern, break_if_match, proto...) \
+#define DB_LOOKUP(name, keysize, keypattern, prologue, epilogue, break_if_match, proto...) \
enum nss_status \
_nss_db_get##name##_r (proto, \
struct STRUCTURE *result, \
Index: nss/nss_files/files-XXX.c
===================================================================
RCS file: /work/cvs/gnu/glibc-2.1/nss/nss_files/files-XXX.c,v
retrieving revision 1.1.1.13
diff -u -p -r1.1.1.13 files-XXX.c
--- nss/nss_files/files-XXX.c 1999/02/14 17:07:28 1.1.1.13
+++ nss/nss_files/files-XXX.c 2000/03/04 18:52:28
@@ -161,7 +161,8 @@ CONCAT(_nss_files_end,ENTNAME) (void)
static enum nss_status
internal_getent (struct STRUCTURE *result,
- char *buffer, size_t buflen, int *errnop H_ERRNO_PROTO)
+ char *buffer, size_t buflen, char **bufend,
+ int *errnop H_ERRNO_PROTO)
{
char *p;
struct parser_data *data = (void *) buffer;
@@ -204,7 +205,8 @@ internal_getent (struct STRUCTURE *resul
while (*p == '\0' || *p == '#' /* Ignore empty and comment lines. */
/* Parse the line. If it is invalid, loop to get the next
line of the file to parse. */
- || ! (parse_result = parse_line (p, result, data, buflen, errnop)));
+ || ! (parse_result = parse_line (p, result, data, buflen,
+ bufend, errnop)));
/* Filled in RESULT with the next entry from the database file. */
return parse_result == -1 ? NSS_STATUS_TRYAGAIN : NSS_STATUS_SUCCESS;
@@ -248,8 +250,8 @@ CONCAT(_nss_files_get,ENTNAME_r) (struct
if (status == NSS_STATUS_SUCCESS)
{
- status = internal_getent (result, buffer, buflen, errnop
- H_ERRNO_ARG);
+ status = internal_getent (result, buffer, buflen, NULL,
+ errnop H_ERRNO_ARG);
/* Remember this position if we were successful. If the
operation failed we give the user a chance to repeat the
@@ -276,10 +278,14 @@ CONCAT(_nss_files_get,ENTNAME_r) (struct
PROTO describes the arguments for the lookup key;
e.g. `const char *hostname'.
+ PROLOGUE is the function prologue.
+
+ EPILOGUE is the function epilogue.
+
BREAK_IF_MATCH is a block of code which compares `struct STRUCTURE *result'
to the lookup key arguments and does `break;' if they match. */
-#define DB_LOOKUP(name, keysize, keypattern, break_if_match, proto...) \
+#define DB_LOOKUP(name, keysize, keypattern, prologue, epilogue, break_if_match, proto...) \
enum nss_status \
_nss_files_get##name##_r (proto, \
struct STRUCTURE *result, char *buffer, \
@@ -287,6 +293,8 @@ _nss_files_get##name##_r (proto,
{ \
enum nss_status status; \
\
+ prologue \
+ \
__libc_lock_lock (lock); \
\
/* Reset file pointer to beginning or open file. */ \
@@ -294,11 +302,12 @@ _nss_files_get##name##_r (proto,
\
if (status == NSS_STATUS_SUCCESS) \
{ \
+ char *buffree; \
/* Tell getent function that we have repositioned the file pointer. */ \
last_use = getby; \
\
- while ((status = internal_getent (result, buffer, buflen, errnop \
- H_ERRNO_ARG)) \
+ while ((status = internal_getent (result, buffer, buflen, &buffree, \
+ errnop H_ERRNO_ARG)) \
== NSS_STATUS_SUCCESS) \
{ break_if_match } \
\
@@ -307,6 +316,8 @@ _nss_files_get##name##_r (proto,
} \
\
__libc_lock_unlock (lock); \
+ \
+ epilogue \
\
return status; \
}
Index: nss/nss_files/files-ethers.c
===================================================================
RCS file: /work/cvs/gnu/glibc-2.1/nss/nss_files/files-ethers.c,v
retrieving revision 1.1.1.1
diff -u -p -r1.1.1.1 files-ethers.c
--- nss/nss_files/files-ethers.c 1997/02/25 17:48:12 1.1.1.1
+++ nss/nss_files/files-ethers.c 2000/03/04 17:36:44
@@ -59,6 +59,7 @@ LINE_PARSER
#include GENERIC
DB_LOOKUP (hostton, 1 + strlen (name), (".%s", name),
+ ,,
{
if (strcmp (result->e_name, name) == 0)
break;
@@ -68,6 +69,7 @@ DB_LOOKUP (ntohost, 18, ("=%x:%x:%x:%x:%
addr->ether_addr_octet[0], addr->ether_addr_octet[1],
addr->ether_addr_octet[2], addr->ether_addr_octet[3],
addr->ether_addr_octet[4], addr->ether_addr_octet[5]),
+ ,,
{
if (memcmp (&result->e_addr, addr,
sizeof (struct ether_addr)) == 0)
Index: nss/nss_files/files-grp.c
===================================================================
RCS file: /work/cvs/gnu/glibc-2.1/nss/nss_files/files-grp.c,v
retrieving revision 1.1.1.1
diff -u -p -r1.1.1.1 files-grp.c
--- nss/nss_files/files-grp.c 1997/02/25 17:48:12 1.1.1.1
+++ nss/nss_files/files-grp.c 2000/03/04 17:36:59
@@ -31,6 +31,7 @@ struct grent_data {};
#include GENERIC
DB_LOOKUP (grnam, 1 + strlen (name), (".%s", name),
+ ,,
{
if (name[0] != '-' && name[0] != '+'
&& ! strcmp (name, result->gr_name))
@@ -38,6 +39,7 @@ DB_LOOKUP (grnam, 1 + strlen (name), (".
}, const char *name)
DB_LOOKUP (grgid, 20, ("=%lu", (unsigned long int) gid),
+ ,,
{
if (result->gr_gid == gid && result->gr_name[0] != '+'
&& result->gr_name[0] != '-')
Index: nss/nss_files/files-hosts.c
===================================================================
RCS file: /work/cvs/gnu/glibc-2.1/nss/nss_files/files-hosts.c,v
retrieving revision 1.1.1.6
diff -u -p -r1.1.1.6 files-hosts.c
--- nss/nss_files/files-hosts.c 1998/01/21 18:33:22 1.1.1.6
+++ nss/nss_files/files-hosts.c 2000/03/04 18:01:56
@@ -22,6 +22,7 @@
#include <arpa/nameser.h>
#include <netdb.h>
#include <resolv.h>
+#include <resolv/res_hconf.h>
/* Get implementation for some internal functions. */
@@ -35,7 +36,7 @@
#define ENTDATA hostent_data
struct hostent_data
{
- unsigned char host_addr[16]; /* IPv4 or IPv6 address. */
+ unsigned char host_addr[IN6ADDRSZ]; /* IPv4 or IPv6 address. */
char *h_addr_ptrs[2]; /* Points to that and null terminator. */
};
@@ -82,24 +83,109 @@ LINE_PARSER
STRING_FIELD (result->h_name, isspace, 1);
})
+#define PROLOGUE \
+ enum nss_status found = NSS_STATUS_NOTFOUND; \
+ struct STRUCTURE entry; \
+ char *bufend = buffer + buflen; \
+ int multi = _res_hconf.flags & HCONF_FLAG_MULTI; \
+ \
+ if (multi) \
+ { \
+ memset (&entry, 0, sizeof entry); \
+ bufend -= __alignof__ (char *) - 1; \
+ bufend += (bufend - (char *) 0) % __alignof__ (char *); \
+ buflen = bufend - buffer; \
+ }
+
+#define EPILOGUE \
+ if (multi && found == NSS_STATUS_SUCCESS) \
+ { \
+ status = found; \
+ *result = entry; \
+ }
+
+#define COPY_H_ADDR_LIST \
+ if (multi) \
+ { \
+ int match = 1; \
+ while (1) \
+ { \
+ LOOKUP_NAME_CASE (h_name, h_aliases) \
+ match = 0; \
+ break; \
+ } \
+ if (match) \
+ { \
+ buflen -= buffree - buffer; \
+ buffer = buffree; \
+ \
+ if (entry.h_addr_list == NULL) \
+ { \
+ entry = *result; \
+ found = status; \
+ } \
+ else \
+ { \
+ int n; \
+ char **h_addr_ptrs; \
+ \
+ for (n = 0; entry.h_addr_list [n] != NULL; n++); \
+ \
+ if (n == 1) \
+ { \
+ /* It is the first time. We have to copy 3 pointers. */ \
+ if (buflen < sizeof (char *) * 3) \
+ { \
+ memory: \
+ *errnop = ERANGE; \
+ H_ERRNO_SET (NETDB_INTERNAL); \
+ return NSS_STATUS_TRYAGAIN; \
+ } \
+ bufend -= sizeof (char *) * 3; \
+ buflen -= sizeof (char *) * 3; \
+ h_addr_ptrs = (char **) bufend; \
+ h_addr_ptrs [1] = entry.h_addr_list [0]; \
+ h_addr_ptrs [2] = NULL; \
+ } \
+ else \
+ { \
+ /* Allocate one pointer in buffer for host address. */ \
+ if (buflen < sizeof (char *)) \
+ goto memory; \
+ bufend -= sizeof (char *); \
+ buflen -= sizeof (char *); \
+ h_addr_ptrs = (char **) bufend; \
+ } \
+ \
+ h_addr_ptrs [0] = result->h_addr_list [0]; \
+ entry.h_addr_list = h_addr_ptrs; \
+ } \
+ } \
+ } \
+ else \
+ LOOKUP_NAME_CASE (h_name, h_aliases)
+
#include "files-XXX.c"
DB_LOOKUP (hostbyname, ,,
+ PROLOGUE, EPILOGUE,
{
if (result->h_addrtype != ((_res.options & RES_USE_INET6)
? AF_INET6 : AF_INET))
continue;
- LOOKUP_NAME_CASE (h_name, h_aliases)
+ COPY_H_ADDR_LIST
}, const char *name)
DB_LOOKUP (hostbyname2, ,,
+ PROLOGUE, EPILOGUE,
{
if (result->h_addrtype != af)
continue;
- LOOKUP_NAME_CASE (h_name, h_aliases)
+ COPY_H_ADDR_LIST
}, const char *name, int af)
DB_LOOKUP (hostbyaddr, ,,
+ ,,
{
if (result->h_addrtype == type && result->h_length == len &&
! memcmp (addr, result->h_addr_list[0], len))
Index: nss/nss_files/files-network.c
===================================================================
RCS file: /work/cvs/gnu/glibc-2.1/nss/nss_files/files-network.c,v
retrieving revision 1.1.1.3
diff -u -p -r1.1.1.3 files-network.c
--- nss/nss_files/files-network.c 1998/01/27 18:53:30 1.1.1.3
+++ nss/nss_files/files-network.c 2000/03/04 17:37:17
@@ -45,10 +45,12 @@ LINE_PARSER
#include "files-XXX.c"
DB_LOOKUP (netbyname, ,,
+ ,,
LOOKUP_NAME_CASE (n_name, n_aliases),
const char *name)
DB_LOOKUP (netbyaddr, ,,
+ ,,
{
if (result->n_addrtype == type && result->n_net == net)
/* Bingo! */
Index: nss/nss_files/files-parse.c
===================================================================
RCS file: /work/cvs/gnu/glibc-2.1/nss/nss_files/files-parse.c,v
retrieving revision 1.1.1.6
diff -u -p -r1.1.1.6 files-parse.c
--- nss/nss_files/files-parse.c 1998/07/29 23:55:06 1.1.1.6
+++ nss/nss_files/files-parse.c 2000/03/04 05:41:17
@@ -69,7 +69,8 @@ struct parser_data
/* The parser is defined in a different module. */
extern int parse_line (char *line, struct STRUCTURE *result,
- struct parser_data *data, size_t datalen, int *errnop);
+ struct parser_data *data, size_t datalen,
+ char **bufend, int *errnop);
# define LINE_PARSER(EOLSET, BODY) /* Do nothing */
@@ -80,7 +81,8 @@ extern int parse_line (char *line, struc
# define LINE_PARSER(EOLSET, BODY) \
parser_stclass int \
parse_line (char *line, struct STRUCTURE *result, \
- struct parser_data *data, size_t datalen, int *errnop) \
+ struct parser_data *data, size_t datalen, \
+ char **bufend, int *errnop) \
{ \
ENTDATA_DECL (data) \
char *p = strpbrk (line, EOLSET "\n"); \
@@ -148,7 +150,7 @@ parse_line (char *line, struct STRUCTURE
# define TRAILING_LIST_PARSER \
{ \
- char **list = parse_list (line, data, datalen, errnop); \
+ char **list = parse_list (line, data, datalen, bufend, errnop); \
if (list) \
result->TRAILING_LIST_MEMBER = list; \
else \
@@ -156,7 +158,8 @@ parse_line (char *line, struct STRUCTURE
}
static inline char **
-parse_list (char *line, struct parser_data *data, size_t datalen, int *errnop)
+parse_list (char *line, struct parser_data *data, size_t datalen,
+ char **bufend, int *errnop)
{
char *eol, **list, **p;
@@ -212,6 +215,9 @@ parse_list (char *line, struct parser_da
}
}
*p = NULL;
+
+ if (bufend)
+ *bufend = (char *) &(p [1]);
return list;
}
Index: nss/nss_files/files-proto.c
===================================================================
RCS file: /work/cvs/gnu/glibc-2.1/nss/nss_files/files-proto.c,v
retrieving revision 1.1.1.1
diff -u -p -r1.1.1.1 files-proto.c
--- nss/nss_files/files-proto.c 1997/02/25 17:48:12 1.1.1.1
+++ nss/nss_files/files-proto.c 2000/03/04 17:37:29
@@ -37,10 +37,12 @@ LINE_PARSER
#include GENERIC
DB_LOOKUP (protobyname, 1 + strlen (name), (".%s", name),
+ ,,
LOOKUP_NAME (p_name, p_aliases),
const char *name)
DB_LOOKUP (protobynumber, 20, ("=%d", proto),
+ ,,
{
if (result->p_proto == proto)
break;
Index: nss/nss_files/files-pwd.c
===================================================================
RCS file: /work/cvs/gnu/glibc-2.1/nss/nss_files/files-pwd.c,v
retrieving revision 1.1.1.1
diff -u -p -r1.1.1.1 files-pwd.c
--- nss/nss_files/files-pwd.c 1997/02/25 17:48:12 1.1.1.1
+++ nss/nss_files/files-pwd.c 2000/03/04 17:37:38
@@ -31,6 +31,7 @@ struct pwent_data {};
#include GENERIC
DB_LOOKUP (pwnam, 1 + strlen (name), (".%s", name),
+ ,,
{
if (name[0] != '+' && name[0] != '-'
&& ! strcmp (name, result->pw_name))
@@ -38,6 +39,7 @@ DB_LOOKUP (pwnam, 1 + strlen (name), (".
}, const char *name)
DB_LOOKUP (pwuid, 20, ("=%lu", (unsigned long int) uid),
+ ,,
{
if (result->pw_uid == uid && result->pw_name[0] != '+'
&& result->pw_name[0] != '-')
Index: nss/nss_files/files-rpc.c
===================================================================
RCS file: /work/cvs/gnu/glibc-2.1/nss/nss_files/files-rpc.c,v
retrieving revision 1.1.1.1
diff -u -p -r1.1.1.1 files-rpc.c
--- nss/nss_files/files-rpc.c 1997/02/25 17:48:12 1.1.1.1
+++ nss/nss_files/files-rpc.c 2000/03/04 17:37:48
@@ -37,10 +37,12 @@ LINE_PARSER
#include GENERIC
DB_LOOKUP (rpcbyname, 1 + strlen (name), (".%s", name),
+ ,,
LOOKUP_NAME (r_name, r_aliases),
const char *name)
DB_LOOKUP (rpcbynumber, 20, ("=%d", number),
+ ,,
{
if (result->r_number == number)
break;
Index: nss/nss_files/files-service.c
===================================================================
RCS file: /work/cvs/gnu/glibc-2.1/nss/nss_files/files-service.c,v
retrieving revision 1.1.1.5
diff -u -p -r1.1.1.5 files-service.c
--- nss/nss_files/files-service.c 1998/02/01 23:56:55 1.1.1.5
+++ nss/nss_files/files-service.c 2000/03/04 17:42:22
@@ -41,6 +41,7 @@ LINE_PARSER
DB_LOOKUP (servbyname, 2 + strlen (name) + (proto ? strlen (proto) : 0),
(".%s/%s", name, proto ?: ""),
+ ,,
{
/* Must match both protocol (if specified) and name. */
if (proto != NULL && strcmp (result->s_proto, proto))
@@ -51,6 +52,7 @@ DB_LOOKUP (servbyname, 2 + strlen (name)
DB_LOOKUP (servbyport, 21 + (proto ? strlen (proto) : 0),
("=%d/%s", ntohs (port), proto ?: ""),
+ ,,
{
/* Must match both port and protocol. */
if (result->s_port == port
Index: nss/nss_files/files-spwd.c
===================================================================
RCS file: /work/cvs/gnu/glibc-2.1/nss/nss_files/files-spwd.c,v
retrieving revision 1.1.1.1
diff -u -p -r1.1.1.1 files-spwd.c
--- nss/nss_files/files-spwd.c 1997/02/25 17:48:12 1.1.1.1
+++ nss/nss_files/files-spwd.c 2000/03/04 17:38:07
@@ -31,6 +31,7 @@ struct spent_data {};
#include GENERIC
DB_LOOKUP (spnam, 1 + strlen (name), (".%s", name),
+ ,,
{
if (name[0] != '+' && name[0] != '-'
&& ! strcmp (name, result->sp_namp))
Index: shadow/fgetspent_r.c
===================================================================
RCS file: /work/cvs/gnu/glibc-2.1/shadow/fgetspent_r.c,v
retrieving revision 1.1.1.9
diff -u -p -r1.1.1.9 fgetspent_r.c
--- shadow/fgetspent_r.c 1999/06/17 15:38:21 1.1.1.9
+++ shadow/fgetspent_r.c 2000/03/04 05:40:07
@@ -70,7 +70,7 @@ __fgetspent_r (FILE *stream, struct spwd
} while (*p == '\0' || *p == '#' || /* Ignore empty and comment lines. */
/* Parse the line. If it is invalid, loop to
get the next line of the file to parse. */
- ! parse_line (buffer, (void *) resbuf, NULL, 0, &errno));
+ ! parse_line (buffer, (void *) resbuf, NULL, 0, NULL, errno));
funlockfile (stream);
Index: shadow/sgetspent_r.c
===================================================================
RCS file: /work/cvs/gnu/glibc-2.1/shadow/sgetspent_r.c,v
retrieving revision 1.1.1.5
diff -u -p -r1.1.1.5 sgetspent_r.c
--- shadow/sgetspent_r.c 1998/06/02 20:47:37 1.1.1.5
+++ shadow/sgetspent_r.c 2000/03/04 05:39:17
@@ -92,7 +92,7 @@ __sgetspent_r (const char *string, struc
size_t buflen, struct spwd **result)
{
int parse_result = parse_line (strncpy (buffer, string, buflen),
- resbuf, NULL, 0, &errno);
+ resbuf, NULL, 0, NULL, &errno);
*result = parse_result > 0 ? resbuf : NULL;
return *result == NULL ? errno : 0;
Index: pwd/fgetpwent_r.c
===================================================================
RCS file: /work/cvs/gnu/glibc-2.1/pwd/fgetpwent_r.c,v
retrieving revision 1.1.1.8
diff -u -p -r1.1.1.8 fgetpwent_r.c
--- pwd/fgetpwent_r.c 1999/06/17 15:38:18 1.1.1.8
+++ pwd/fgetpwent_r.c 2000/03/04 05:38:25
@@ -103,7 +103,7 @@ __fgetpwent_r (FILE *stream, struct pass
} while (*p == '\0' || *p == '#' || /* Ignore empty and comment lines. */
/* Parse the line. If it is invalid, loop to
get the next line of the file to parse. */
- ! parse_line (p, resbuf, (void *) buffer, buflen, &errno));
+ ! parse_line (p, resbuf, (void *) buffer, buflen, NULL, &errno));
funlockfile (stream);
Index: grp/fgetgrent_r.c
===================================================================
RCS file: /work/cvs/gnu/glibc-2.1/grp/fgetgrent_r.c,v
retrieving revision 1.1.1.8
diff -u -p -r1.1.1.8 fgetgrent_r.c
--- grp/fgetgrent_r.c 1999/06/17 15:37:27 1.1.1.8
+++ grp/fgetgrent_r.c 2000/03/04 05:37:35
@@ -93,7 +93,7 @@ __fgetgrent_r (FILE *stream, struct grou
get the next line of the file to parse. */
|| ! (parse_result = parse_line (p, resbuf,
(void *) buffer, buflen,
- &errno)));
+ NULL, &errno)));
funlockfile (stream);
Index: hesiod/nss_hesiod/hesiod-grp.c
===================================================================
RCS file: /work/cvs/gnu/glibc-2.1/hesiod/nss_hesiod/hesiod-grp.c,v
retrieving revision 1.1.1.2
diff -u -p -r1.1.1.2 hesiod-grp.c
--- hesiod/nss_hesiod/hesiod-grp.c 1997/12/08 17:13:53 1.1.1.2
+++ hesiod/nss_hesiod/hesiod-grp.c 2000/03/04 18:47:34
@@ -110,7 +110,8 @@ lookup (const char *name, const char *ty
memcpy (data->linebuffer, *list, len);
hesiod_free_list (context, list);
- parse_res = _nss_files_parse_grent (buffer, grp, data, buflen, errnop);
+ parse_res = _nss_files_parse_grent (buffer, grp, data, buflen, NULL,
+ errnop);
if (parse_res < 1)
return parse_res == -1 ? NSS_STATUS_TRYAGAIN : NSS_STATUS_NOTFOUND;
Index: hesiod/nss_hesiod/hesiod-pwd.c
===================================================================
RCS file: /work/cvs/gnu/glibc-2.1/hesiod/nss_hesiod/hesiod-pwd.c,v
retrieving revision 1.1.1.2
diff -u -p -r1.1.1.2 hesiod-pwd.c
--- hesiod/nss_hesiod/hesiod-pwd.c 1997/12/08 17:13:53 1.1.1.2
+++ hesiod/nss_hesiod/hesiod-pwd.c 2000/03/04 18:47:51
@@ -110,7 +110,8 @@ lookup (const char *name, const char *ty
memcpy (data->linebuffer, *list, len);
hesiod_free_list (context, list);
- parse_res = _nss_files_parse_pwent (buffer, pwd, data, buflen, errnop);
+ parse_res = _nss_files_parse_pwent (buffer, pwd, data, buflen, NULL,
+ errnop);
if (parse_res < 1)
return parse_res == -1 ? NSS_STATUS_TRYAGAIN : NSS_STATUS_NOTFOUND;
Index: hesiod/nss_hesiod/hesiod-service.c
===================================================================
RCS file: /work/cvs/gnu/glibc-2.1/hesiod/nss_hesiod/hesiod-service.c,v
retrieving revision 1.1.1.2
diff -u -p -r1.1.1.2 hesiod-service.c
--- hesiod/nss_hesiod/hesiod-service.c 1997/12/08 17:13:53 1.1.1.2
+++ hesiod/nss_hesiod/hesiod-service.c 2000/03/04 18:48:08
@@ -131,7 +131,8 @@ lookup (const char *name, const char *pr
memcpy (data->linebuffer, *item, len);
- parse_res = parse_line (buffer, serv, data, buflen, errnop);
+ parse_res = parse_line (buffer, serv, data, buflen, NULL,
+ errnop);
if (parse_res == -1)
{
hesiod_free_list (context, list);
Index: nis/nss_compat/compat-grp.c
===================================================================
RCS file: /work/cvs/gnu/glibc-2.1/nis/nss_compat/compat-grp.c,v
retrieving revision 1.1.1.18
diff -u -p -r1.1.1.18 compat-grp.c
--- nis/nss_compat/compat-grp.c 2000/01/12 16:46:36 1.1.1.18
+++ nis/nss_compat/compat-grp.c 2000/03/04 18:42:09
@@ -313,7 +313,8 @@ getgrent_next_nis (struct group *result,
while (isspace (*p))
++p;
- parse_res = _nss_files_parse_grent (p, result, data, buflen, errnop);
+ parse_res = _nss_files_parse_grent (p, result, data, buflen,
+ NULL, errnop);
if (parse_res == -1)
{
free (ent->oldkey);
@@ -464,7 +465,8 @@ getgrnam_plusgroup (const char *name, st
free (outval);
while (isspace (*p))
++p;
- parse_res = _nss_files_parse_grent (p, result, data, buflen, errnop);
+ parse_res = _nss_files_parse_grent (p, result, data, buflen,
+ NULL, errnop);
if (parse_res == -1)
return NSS_STATUS_TRYAGAIN;
}
@@ -514,7 +516,8 @@ getgrent_next_file (struct group *result
while (*p == '\0' || *p == '#' || /* Ignore empty and comment lines. */
/* Parse the line. If it is invalid, loop to
get the next line of the file to parse. */
- !(parse_res = _nss_files_parse_grent (p, result, data, buflen,
+ !(parse_res = _nss_files_parse_grent (p, result, data,
+ buflen, NULL,
errnop)));
if (parse_res == -1)
@@ -657,7 +660,8 @@ internal_getgrnam_r (const char *name, s
while (*p == '\0' || *p == '#' || /* Ignore empty and comment lines. */
/* Parse the line. If it is invalid, loop to
get the next line of the file to parse. */
- !(parse_res = _nss_files_parse_grent (p, result, data, buflen,
+ !(parse_res = _nss_files_parse_grent (p, result, data,
+ buflen, NULL,
errnop)));
if (parse_res == -1)
@@ -818,7 +822,8 @@ getgrgid_plusgroup (gid_t gid, struct gr
while (isspace (*p))
p++;
- parse_res = _nss_files_parse_grent (p, result, data, buflen, errnop);
+ parse_res = _nss_files_parse_grent (p, result, data, buflen,
+ NULL, errnop);
if (parse_res == -1)
return NSS_STATUS_TRYAGAIN;
}
@@ -869,7 +874,8 @@ internal_getgrgid_r (gid_t gid, struct g
while (*p == '\0' || *p == '#' || /* Ignore empty and comment lines. */
/* Parse the line. If it is invalid, loop to
get the next line of the file to parse. */
- !(parse_res = _nss_files_parse_grent (p, result, data, buflen,
+ !(parse_res = _nss_files_parse_grent (p, result, data,
+ buflen, NULL,
errnop)));
if (parse_res == -1)
Index: nis/nss_compat/compat-initgroups.c
===================================================================
RCS file: /work/cvs/gnu/glibc-2.1/nis/nss_compat/compat-initgroups.c,v
retrieving revision 1.1.1.5
diff -u -p -r1.1.1.5 compat-initgroups.c
--- nis/nss_compat/compat-initgroups.c 2000/01/12 16:46:36 1.1.1.5
+++ nis/nss_compat/compat-initgroups.c 2000/03/04 18:46:23
@@ -300,7 +300,8 @@ getgrent_next_nis (struct group *result,
while (isspace (*p))
++p;
- parse_res = _nss_files_parse_grent (p, result, data, buflen, errnop);
+ parse_res = _nss_files_parse_grent (p, result, data, buflen,
+ NULL, errnop);
if (parse_res == -1)
{
*errnop = ERANGE;
@@ -444,7 +445,8 @@ getgrnam_plusgroup (const char *name, st
free (outval);
while (isspace (*p))
++p;
- parse_res = _nss_files_parse_grent (p, result, data, buflen, errnop);
+ parse_res = _nss_files_parse_grent (p, result, data, buflen,
+ NULL, errnop);
if (parse_res == -1)
{
*errnop = ERANGE;
@@ -497,7 +499,8 @@ getgrent_next_file (struct group *result
while (*p == '\0' || *p == '#' || /* Ignore empty and comment lines. */
/* Parse the line. If it is invalid, loop to
get the next line of the file to parse. */
- !(parse_res = _nss_files_parse_grent (p, result, data, buflen,
+ !(parse_res = _nss_files_parse_grent (p, result, data,
+ buflen, NULL,
errnop)));
if (parse_res == -1)
Index: nis/nss_compat/compat-pwd.c
===================================================================
RCS file: /work/cvs/gnu/glibc-2.1/nis/nss_compat/compat-pwd.c,v
retrieving revision 1.1.1.21
diff -u -p -r1.1.1.21 compat-pwd.c
--- nis/nss_compat/compat-pwd.c 1999/12/12 21:08:31 1.1.1.21
+++ nis/nss_compat/compat-pwd.c 2000/03/04 18:44:16
@@ -487,7 +487,8 @@ getpwent_next_nis_netgr (const char *nam
while (isspace (*p))
p++;
free (outval);
- parse_res = _nss_files_parse_pwent (p, result, data, buflen, errnop);
+ parse_res = _nss_files_parse_pwent (p, result, data, buflen,
+ NULL, errnop);
if (parse_res == -1)
{
ent->netgrdata.cursor = saved_cursor;
@@ -786,7 +787,8 @@ getpwent_next_nis (struct passwd *result
while (isspace (*p))
++p;
- parse_res = _nss_files_parse_pwent (p, result, data, buflen, errnop);
+ parse_res = _nss_files_parse_pwent (p, result, data, buflen,
+ NULL, errnop);
if (parse_res == -1)
{
free (ent->oldkey);
@@ -905,7 +907,8 @@ getpwnam_plususer (const char *name, str
while (isspace (*ptr))
ptr++;
- parse_res = _nss_files_parse_pwent (ptr, result, data, buflen, errnop);
+ parse_res = _nss_files_parse_pwent (ptr, result, data, buflen,
+ NULL, errnop);
if (parse_res == -1)
return NSS_STATUS_TRYAGAIN;
@@ -970,7 +973,8 @@ getpwent_next_file (struct passwd *resul
while (*p == '\0' || *p == '#' || /* Ignore empty and comment lines. */
/* Parse the line. If it is invalid, loop to
get the next line of the file to parse. */
- !(parse_res = _nss_files_parse_pwent (p, result, data, buflen,
+ !(parse_res = _nss_files_parse_pwent (p, result, data,
+ buflen, NULL,
errnop)));
if (parse_res == -1)
@@ -1191,7 +1195,8 @@ internal_getpwnam_r (const char *name, s
while (*p == '\0' || *p == '#' || /* Ignore empty and comment lines. */
/* Parse the line. If it is invalid, loop to
get the next line of the file to parse. */
- !(parse_res = _nss_files_parse_pwent (p, result, data, buflen,
+ !(parse_res = _nss_files_parse_pwent (p, result, data,
+ buflen, NULL,
errnop)));
if (parse_res == -1)
@@ -1411,7 +1416,8 @@ getpwuid_plususer (uid_t uid, struct pas
while (isspace (*ptr))
ptr++;
- parse_res = _nss_files_parse_pwent (ptr, result, data, buflen, errnop);
+ parse_res = _nss_files_parse_pwent (ptr, result, data, buflen,
+ NULL, errnop);
if (parse_res == -1)
return NSS_STATUS_TRYAGAIN;
}
@@ -1472,7 +1478,8 @@ internal_getpwuid_r (uid_t uid, struct p
while (*p == '\0' || *p == '#' || /* Ignore empty and comment lines. */
/* Parse the line. If it is invalid, loop to
get the next line of the file to parse. */
- !(parse_res = _nss_files_parse_pwent (p, result, data, buflen,
+ !(parse_res = _nss_files_parse_pwent (p, result, data,
+ buflen, NULL,
errnop)));
if (parse_res == -1)
Index: nis/nss_compat/compat-spwd.c
===================================================================
RCS file: /work/cvs/gnu/glibc-2.1/nis/nss_compat/compat-spwd.c,v
retrieving revision 1.1.1.18
diff -u -p -r1.1.1.18 compat-spwd.c
--- nis/nss_compat/compat-spwd.c 2000/01/12 16:46:37 1.1.1.18
+++ nis/nss_compat/compat-spwd.c 2000/03/04 18:45:35
@@ -379,7 +379,8 @@ getspent_next_nis_netgr (const char *nam
while (isspace (*p))
p++;
free (outval);
- parse_res = _nss_files_parse_spent (p, result, data, buflen, errnop);
+ parse_res = _nss_files_parse_spent (p, result, data, buflen,
+ NULL, errnop);
if (parse_res == -1)
{
ent->netgrdata.cursor = saved_cursor;
@@ -662,7 +663,8 @@ getspent_next_nis (struct spwd *result,
while (isspace (*p))
++p;
- parse_res = _nss_files_parse_spent (p, result, data, buflen, errnop);
+ parse_res = _nss_files_parse_spent (p, result, data, buflen,
+ NULL, errnop);
if (parse_res == -1)
{
free (ent->oldkey);
@@ -767,7 +769,8 @@ getspnam_plususer (const char *name, str
free (outval);
while (isspace (*ptr))
ptr++;
- parse_res = _nss_files_parse_spent (ptr, result, data, buflen, errnop);
+ parse_res = _nss_files_parse_spent (ptr, result, data, buflen,
+ NULL, errnop);
if (parse_res == -1)
return NSS_STATUS_TRYAGAIN;
}
@@ -824,7 +827,8 @@ getspent_next_file (struct spwd *result,
/* Parse the line. If it is invalid, loop to
get the next line of the file to parse. */
|| !(parse_res = _nss_files_parse_spent (p, result, data,
- buflen, errnop)));
+ buflen, NULL,
+ errnop)));
if (parse_res == -1)
{
@@ -1034,7 +1038,8 @@ internal_getspnam_r (const char *name, s
while (*p == '\0' || *p == '#' || /* Ignore empty and comment lines. */
/* Parse the line. If it is invalid, loop to
get the next line of the file to parse. */
- !(parse_res = _nss_files_parse_spent (p, result, data, buflen,
+ !(parse_res = _nss_files_parse_spent (p, result, data,
+ buflen, NULL,
errnop)));
if (parse_res == -1)
Index: nis/nss_nis/nis-ethers.c
===================================================================
RCS file: /work/cvs/gnu/glibc-2.1/nis/nss_nis/nis-ethers.c,v
retrieving revision 1.1.1.12
diff -u -p -r1.1.1.12 nis-ethers.c
--- nis/nss_nis/nis-ethers.c 2000/01/12 16:46:37 1.1.1.12
+++ nis/nss_nis/nis-ethers.c 2000/03/04 18:39:09
@@ -167,7 +167,8 @@ internal_nis_getetherent_r (struct ether
while (isspace (*p))
++p;
- parse_res = _nss_files_parse_etherent (p, eth, data, buflen, errnop);
+ parse_res = _nss_files_parse_etherent (p, eth, data, buflen,
+ NULL, errnop);
if (parse_res == -1)
return NSS_STATUS_TRYAGAIN;
next = next->next;
@@ -235,7 +236,8 @@ _nss_nis_gethostton_r (const char *name,
++p;
free (result);
- parse_res = _nss_files_parse_etherent (p, eth, data, buflen, errnop);
+ parse_res = _nss_files_parse_etherent (p, eth, data, buflen, NULL,
+ errnop);
if (parse_res < 1)
{
if (parse_res == -1)
@@ -299,7 +301,8 @@ _nss_nis_getntohost_r (struct ether_addr
++p;
free (result);
- parse_res = _nss_files_parse_etherent (p, eth, data, buflen, errnop);
+ parse_res = _nss_files_parse_etherent (p, eth, data, buflen, NULL,
+ errnop);
if (parse_res < 1)
{
if (parse_res == -1)
Index: nis/nss_nis/nis-grp.c
===================================================================
RCS file: /work/cvs/gnu/glibc-2.1/nis/nss_nis/nis-grp.c,v
retrieving revision 1.1.1.9
diff -u -p -r1.1.1.9 nis-grp.c
--- nis/nss_nis/nis-grp.c 2000/01/12 16:46:37 1.1.1.9
+++ nis/nss_nis/nis-grp.c 2000/03/04 18:37:00
@@ -124,7 +124,8 @@ internal_nis_getgrent_r (struct group *g
++p;
free (result);
- parse_res = _nss_files_parse_grent (p, grp, data, buflen, errnop);
+ parse_res = _nss_files_parse_grent (p, grp, data, buflen, NULL,
+ errnop);
if (parse_res == -1)
{
free (outkey);
@@ -200,7 +201,8 @@ _nss_nis_getgrnam_r (const char *name, s
++p;
free (result);
- parse_res = _nss_files_parse_grent (p, grp, data, buflen, errnop);
+ parse_res = _nss_files_parse_grent (p, grp, data, buflen, NULL,
+ errnop);
if (parse_res < 1)
{
if (parse_res == -1)
@@ -254,7 +256,8 @@ _nss_nis_getgrgid_r (gid_t gid, struct g
++p;
free (result);
- parse_res = _nss_files_parse_grent (p, grp, data, buflen, errnop);
+ parse_res = _nss_files_parse_grent (p, grp, data, buflen, NULL,
+ errnop);
if (parse_res < 1)
{
if (parse_res == -1)
Index: nis/nss_nis/nis-hosts.c
===================================================================
RCS file: /work/cvs/gnu/glibc-2.1/nis/nss_nis/nis-hosts.c,v
retrieving revision 1.1.1.13
diff -u -p -r1.1.1.13 nis-hosts.c
--- nis/nss_nis/nis-hosts.c 2000/01/12 16:46:37 1.1.1.13
+++ nis/nss_nis/nis-hosts.c 2000/03/04 18:24:54
@@ -200,7 +200,7 @@ internal_nis_gethostent_r (struct hosten
++p;
free (result);
- parse_res = parse_line (p, host, data, buflen, errnop);
+ parse_res = parse_line (p, host, data, buflen, NULL, errnop);
if (parse_res == -1)
{
free (outkey);
@@ -302,7 +302,7 @@ _nss_nis_gethostbyname2_r (const char *n
++p;
free (result);
- parse_res = parse_line (p, host, data, buflen, errnop);
+ parse_res = parse_line (p, host, data, buflen, NULL, errnop);
if (parse_res < 1 || host->h_addrtype != af)
{
@@ -397,7 +397,7 @@ _nss_nis_gethostbyaddr_r (char *addr, in
++p;
free (result);
- parse_res = parse_line (p, host, data, buflen, errnop);
+ parse_res = parse_line (p, host, data, buflen, NULL, errnop);
if (parse_res < 1)
{
if (parse_res == -1)
Index: nis/nss_nis/nis-initgroups.c
===================================================================
RCS file: /work/cvs/gnu/glibc-2.1/nis/nss_nis/nis-initgroups.c,v
retrieving revision 1.1.1.3
diff -u -p -r1.1.1.3 nis-initgroups.c
--- nis/nss_nis/nis-initgroups.c 1999/08/02 16:07:21 1.1.1.3
+++ nis/nss_nis/nis-initgroups.c 2000/03/04 18:40:07
@@ -120,7 +120,8 @@ internal_getgrent_r (struct group *grp,
while (isspace (*p))
++p;
- parse_res = _nss_files_parse_grent (p, grp, data, buflen, errnop);
+ parse_res = _nss_files_parse_grent (p, grp, data, buflen, NULL,
+ errnop);
if (parse_res == -1)
return NSS_STATUS_TRYAGAIN;
intern->next = intern->next->next;
Index: nis/nss_nis/nis-network.c
===================================================================
RCS file: /work/cvs/gnu/glibc-2.1/nis/nss_nis/nis-network.c,v
retrieving revision 1.1.1.9
diff -u -p -r1.1.1.9 nis-network.c
--- nis/nss_nis/nis-network.c 1999/01/30 00:01:03 1.1.1.9
+++ nis/nss_nis/nis-network.c 2000/03/04 18:36:11
@@ -128,7 +128,8 @@ internal_nis_getnetent_r (struct netent
++p;
free (result);
- parse_res = _nss_files_parse_netent (p, net, data, buflen, errnop);
+ parse_res = _nss_files_parse_netent (p, net, data, buflen, NULL,
+ errnop);
if (parse_res == -1)
{
free (outkey);
@@ -229,7 +230,8 @@ _nss_nis_getnetbyname_r (const char *nam
++p;
free (result);
- parse_res = _nss_files_parse_netent (p, net, data, buflen, errnop);
+ parse_res = _nss_files_parse_netent (p, net, data, buflen, NULL,
+ errnop);
if (parse_res < 1)
{
@@ -315,7 +317,8 @@ _nss_nis_getnetbyaddr_r (unsigned long a
++p;
free (result);
- parse_res = _nss_files_parse_netent (p, net, data, buflen, errnop);
+ parse_res = _nss_files_parse_netent (p, net, data, buflen,
+ NULL, errnop);
if (parse_res < 1)
{
Index: nis/nss_nis/nis-proto.c
===================================================================
RCS file: /work/cvs/gnu/glibc-2.1/nis/nss_nis/nis-proto.c,v
retrieving revision 1.1.1.11
diff -u -p -r1.1.1.11 nis-proto.c
--- nis/nss_nis/nis-proto.c 1998/08/20 16:09:12 1.1.1.11
+++ nis/nss_nis/nis-proto.c 2000/03/04 18:50:10
@@ -159,7 +159,8 @@ internal_nis_getprotoent_r (struct proto
while (isspace (*p))
++p;
- parse_res = _nss_files_parse_protoent (p, proto, data, buflen, errnop);
+ parse_res = _nss_files_parse_protoent (p, proto, data, buflen,
+ NULL, errnop);
if (parse_res == -1)
return NSS_STATUS_TRYAGAIN;
next = next->next;
@@ -227,7 +228,8 @@ _nss_nis_getprotobyname_r (const char *n
++p;
free (result);
- parse_res = _nss_files_parse_protoent (p, proto, data, buflen, errnop);
+ parse_res = _nss_files_parse_protoent (p, proto, data, buflen, NULL,
+ errnop);
if (parse_res < 1)
{
if (parse_res == -1)
@@ -281,7 +283,8 @@ _nss_nis_getprotobynumber_r (int number,
++p;
free (result);
- parse_res = _nss_files_parse_protoent (p, proto, data, buflen, errnop);
+ parse_res = _nss_files_parse_protoent (p, proto, data, buflen, NULL,
+ errnop);
if (parse_res < 1)
{
if (parse_res == -1)
Index: nis/nss_nis/nis-pwd.c
===================================================================
RCS file: /work/cvs/gnu/glibc-2.1/nis/nss_nis/nis-pwd.c,v
retrieving revision 1.1.1.10
diff -u -p -r1.1.1.10 nis-pwd.c
--- nis/nss_nis/nis-pwd.c 1998/09/23 14:09:47 1.1.1.10
+++ nis/nss_nis/nis-pwd.c 2000/03/04 18:37:45
@@ -174,7 +174,8 @@ internal_nis_getpwent_r (struct passwd *
++p;
free (result);
- parse_res = _nss_files_parse_pwent (p, pwd, data, buflen, errnop);
+ parse_res = _nss_files_parse_pwent (p, pwd, data, buflen, NULL,
+ errnop);
if (parse_res == -1)
{
free (outkey);
@@ -300,7 +301,8 @@ _nss_nis_getpwnam_r (const char *name, s
++p;
free (result);
- parse_res = _nss_files_parse_pwent (p, pwd, data, buflen, errnop);
+ parse_res = _nss_files_parse_pwent (p, pwd, data, buflen, NULL,
+ errnop);
if (parse_res < 1)
{
if (parse_res == -1)
@@ -404,7 +406,8 @@ _nss_nis_getpwuid_r (uid_t uid, struct p
++p;
free (result);
- parse_res = _nss_files_parse_pwent (p, pwd, data, buflen, errnop);
+ parse_res = _nss_files_parse_pwent (p, pwd, data, buflen, NULL,
+ errnop);
if (parse_res < 1)
{
if (parse_res == -1)
Index: nis/nss_nis/nis-rpc.c
===================================================================
RCS file: /work/cvs/gnu/glibc-2.1/nis/nss_nis/nis-rpc.c,v
retrieving revision 1.1.1.10
diff -u -p -r1.1.1.10 nis-rpc.c
--- nis/nss_nis/nis-rpc.c 1998/08/20 16:09:16 1.1.1.10
+++ nis/nss_nis/nis-rpc.c 2000/03/04 18:38:20
@@ -175,7 +175,8 @@ internal_nis_getrpcent_r (struct rpcent
while (isspace (*p))
++p;
- parse_res = _nss_files_parse_rpcent (p, rpc, pdata, buflen, errnop);
+ parse_res = _nss_files_parse_rpcent (p, rpc, pdata, buflen, NULL,
+ errnop);
if (parse_res == -1)
return NSS_STATUS_TRYAGAIN;
data->next = data->next->next;
@@ -293,7 +294,8 @@ _nss_nis_getrpcbynumber_r (int number, s
++p;
free (result);
- parse_res = _nss_files_parse_rpcent (p, rpc, data, buflen, errnop);
+ parse_res = _nss_files_parse_rpcent (p, rpc, data, buflen, NULL,
+ errnop);
if (parse_res < 1)
{
Index: nis/nss_nis/nis-service.c
===================================================================
RCS file: /work/cvs/gnu/glibc-2.1/nis/nss_nis/nis-service.c,v
retrieving revision 1.1.1.13
diff -u -p -r1.1.1.13 nis-service.c
--- nis/nss_nis/nis-service.c 2000/01/12 16:46:37 1.1.1.13
+++ nis/nss_nis/nis-service.c 2000/03/04 18:50:42
@@ -175,7 +175,8 @@ internal_nis_getservent_r (struct serven
while (isspace (*p))
++p;
- parse_res = _nss_files_parse_servent (p, serv, pdata, buflen, errnop);
+ parse_res = _nss_files_parse_servent (p, serv, pdata, buflen,
+ NULL, errnop);
if (parse_res == -1)
return NSS_STATUS_TRYAGAIN;
data->next = data->next->next;
@@ -256,7 +257,7 @@ _nss_nis_getservbyname_r (const char *na
++p;
free (result);
parse_res = _nss_files_parse_servent (p, serv, pdata,
- buflen, errnop);
+ buflen, NULL, errnop);
if (parse_res < 0)
{
if (parse_res == -1)
@@ -350,7 +351,7 @@ _nss_nis_getservbyport_r (int port, char
++p;
free (result);
parse_res = _nss_files_parse_servent (p, serv, pdata,
- buflen, errnop);
+ buflen, NULL, errnop);
if (parse_res < 0)
{
if (parse_res == -1)
Index: nis/nss_nis/nis-spwd.c
===================================================================
RCS file: /work/cvs/gnu/glibc-2.1/nis/nss_nis/nis-spwd.c,v
retrieving revision 1.1.1.7
diff -u -p -r1.1.1.7 nis-spwd.c
--- nis/nss_nis/nis-spwd.c 1998/08/20 16:09:19 1.1.1.7
+++ nis/nss_nis/nis-spwd.c 2000/03/04 18:39:44
@@ -124,7 +124,8 @@ internal_nis_getspent_r (struct spwd *sp
++p;
free (result);
- parse_res = _nss_files_parse_spent (p, sp, data, buflen, errnop);
+ parse_res = _nss_files_parse_spent (p, sp, data, buflen, NULL,
+ errnop);
if (parse_res == -1)
{
free (outkey);
@@ -200,7 +201,8 @@ _nss_nis_getspnam_r (const char *name, s
++p;
free (result);
- parse_res = _nss_files_parse_spent (p, sp, data, buflen, errnop);
+ parse_res = _nss_files_parse_spent (p, sp, data, buflen, NULL,
+ errnop);
if (parse_res < 1)
{
if (parse_res == -1)
Index: resolv/Versions
===================================================================
RCS file: /work/cvs/gnu/glibc-2.1/resolv/Versions,v
retrieving revision 1.1.1.2
diff -u -p -r1.1.1.2 Versions
--- resolv/Versions 1999/02/14 17:07:32 1.1.1.2
+++ resolv/Versions 2000/03/04 23:12:04
@@ -18,6 +18,10 @@ libc {
# r*
res_init;
}
+ GLIBC_2.1.3 {
+ # Use by libnss_files.so.
+ _res_hconf;
+ }
}
libresolv {