aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>1999-10-08 17:16:17 +0000
committerUlrich Drepper <drepper@redhat.com>1999-10-08 17:16:17 +0000
commitb5c6276a6ea23cf92e30132b92cf14119235b257 (patch)
tree546237363815c2c2fd8e2516dd89169b91c5c1c9 /nis/nss_nisplus/nisplus-parser.c
parentUpdate. (diff)
downloadglibc-b5c6276a6ea23cf92e30132b92cf14119235b257.tar.gz
glibc-b5c6276a6ea23cf92e30132b92cf14119235b257.tar.bz2
glibc-b5c6276a6ea23cf92e30132b92cf14119235b257.zip
Update.
1999-10-08 Ulrich Drepper <drepper@cygnus.com> * nis/nss_nisplus/nisplus-parser.c (_nss_nisplus_parse_spent): Fix handling of empty entries. Patch by Thorsten Kukuk <kukuk@suse.de>. 1999-10-08 Andreas Schwab <schwab@suse.de> * debug/xtrace.sh: Fix quoting bugs. Implement --help and --version. 1999-10-08 Andreas Schwab <schwab@suse.de> * debug/pcprofiledump.c: Fix typos. 1999-10-07 Andreas Jaeger <aj@suse.de> * math/Makefile (tests): Added basic-tests. * math/basic-test.c: New file. Contains function basic_tests from libm-test. 1999-10-07 Andreas Schwab <schwab@suse.de> * malloc/memprof.sh: Fix quoting bugs. 1999-10-08 Ulrich Drepper <drepper@cygnus.com> * timezone/europe: Update from tzdata1999h.
Diffstat (limited to 'nis/nss_nisplus/nisplus-parser.c')
-rw-r--r--nis/nss_nisplus/nisplus-parser.c38
1 files changed, 23 insertions, 15 deletions
diff --git a/nis/nss_nisplus/nisplus-parser.c b/nis/nss_nisplus/nisplus-parser.c
index e8d107922b..7a91992764 100644
--- a/nis/nss_nisplus/nisplus-parser.c
+++ b/nis/nss_nisplus/nisplus-parser.c
@@ -307,7 +307,8 @@ _nss_nisplus_parse_spent (nis_result *result, struct spwd *sp,
first_unused += (len + 1);
sp->sp_lstchg = sp->sp_min = sp->sp_max = sp->sp_warn = sp->sp_inact =
- sp->sp_expire = sp->sp_flag = -1;
+ sp->sp_expire = -1;
+ sp->sp_flag = ~0ul;
if (NISENTRYLEN (0, 7, result) > 0)
{
@@ -316,49 +317,56 @@ _nss_nisplus_parse_spent (nis_result *result, struct spwd *sp,
line = NISENTRYVAL (0, 7, result);
cp = strchr (line, ':');
if (cp == NULL)
- return 0;
+ return 1;
*cp++ = '\0';
- sp->sp_lstchg = atol (line);
+ if (*line)
+ sp->sp_lstchg = atol (line);
line = cp;
cp = strchr (line, ':');
if (cp == NULL)
- return 0;
+ return 1;
*cp++ = '\0';
- sp->sp_min = atol (line);
+ if (*line)
+ sp->sp_min = atol (line);
line = cp;
cp = strchr (line, ':');
if (cp == NULL)
- return 0;
+ return 1;
*cp++ = '\0';
- sp->sp_max = atol (line);
+ if (*line)
+ sp->sp_max = atol (line);
line = cp;
cp = strchr (line, ':');
if (cp == NULL)
- return 0;
+ return 1;
*cp++ = '\0';
- sp->sp_warn = atol (line);
+ if (*line)
+ sp->sp_warn = atol (line);
line = cp;
cp = strchr (line, ':');
if (cp == NULL)
- return 0;
+ return 1;
*cp++ = '\0';
- sp->sp_inact = atol (line);
+ if (*line)
+ sp->sp_inact = atol (line);
line = cp;
cp = strchr (line, ':');
if (cp == NULL)
- return 0;
+ return 1;
*cp++ = '\0';
- sp->sp_expire = atol (line);
+ if (*line)
+ sp->sp_expire = atol (line);
line = cp;
if (line == NULL)
- return 0;
- sp->sp_flag = atol (line);
+ return 1;
+ if (*line)
+ sp->sp_flag = atol (line);
}
return 1;