diff options
author | Ulrich Drepper <drepper@redhat.com> | 2000-07-25 22:19:16 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2000-07-25 22:19:16 +0000 |
commit | 3452aba811b77932788ac10de324653140bca936 (patch) | |
tree | 3204a06d66c29be1eb351211de1b7b8d77a31686 /nss/nss_files | |
parent | 16093625a6a30a7977c8e8ed7bb7ce95ef17c8d1 (diff) | |
download | glibc-3452aba811b77932788ac10de324653140bca936.zip glibc-3452aba811b77932788ac10de324653140bca936.tar.gz glibc-3452aba811b77932788ac10de324653140bca936.tar.bz2 |
Update.
2000-07-25 Mark Kettenis <kettenis@gnu.org>
* nss/nss_files/files-netgrp.c (strip_whitespace): New function.
(_nss_netgroup_parseline): Use strip_whitespace to strip off any
leading and trailing spaces from host, user and domain name.
2000-07-25 Jes Sorensen <jes@linuxcare.com>
* csu/defs.awk: Add support for need_endp.
2000-07-25 Mark Kettenis <kettenis@gnu.org>
* resolv/resolv.h: Remove __P from res_send_qhook and
res_send_rhook typedefs.
2000-07-25 Bruno Haible <haible@clisp.cons.org>
* intl/tst-translit.c (main): Unset OUTPUT_CHARSET.
Diffstat (limited to 'nss/nss_files')
-rw-r--r-- | nss/nss_files/files-netgrp.c | 33 |
1 files changed, 25 insertions, 8 deletions
diff --git a/nss/nss_files/files-netgrp.c b/nss/nss_files/files-netgrp.c index eb6e673..4ffafb2 100644 --- a/nss/nss_files/files-netgrp.c +++ b/nss/nss_files/files-netgrp.c @@ -1,5 +1,5 @@ /* Netgroup file parser in nss_files modules. - Copyright (C) 1996, 1997 Free Software Foundation, Inc. + Copyright (C) 1996, 1997, 2000 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996. @@ -159,6 +159,24 @@ _nss_files_endnetgrent (struct __netgrent *result) return NSS_STATUS_SUCCESS; } +static char * +strip_whitespace (char *str) +{ + char *cp = str; + + /* Skip leading spaces. */ + while (isspace (*cp)) + cp++; + + str = cp; + while (*cp != '\0' && ! isspace(*cp)) + cp++; + + /* Null-terminate, stripping off any trailing spaces. */ + *cp = '\0'; + + return *str == '\0' ? NULL : str; +} enum nss_status _nss_netgroup_parseline (char **cursor, struct __netgrent *result, @@ -235,15 +253,14 @@ _nss_netgroup_parseline (char **cursor, struct __netgrent *result, memcpy (buffer, host, cp - host); result->type = triple_val; - buffer[(user - host) - 1] = '\0'; - result->val.triple.host = *host == ',' ? NULL : buffer; + buffer[(user - host) - 1] = '\0'; /* Replace ',' with '\0'. */ + result->val.triple.host = strip_whitespace (buffer); - buffer[(domain - host) - 1] = '\0'; - result->val.triple.user = *user == ',' ? NULL : buffer + (user - host); + buffer[(domain - host) - 1] = '\0'; /* Replace ',' with '\0'. */ + result->val.triple.user = strip_whitespace (buffer + (user - host)); - buffer[(cp - host) - 1] = '\0'; - result->val.triple.domain = - *domain == ')' ? NULL : buffer + (domain - host); + buffer[(cp - host) - 1] = '\0'; /* Replace ')' with '\0'. */ + result->val.triple.domain = strip_whitespace (buffer + (domain - host)); status = NSS_STATUS_SUCCESS; |