From e1b57f44ef91a857d1401dab579ededaefa8ef36 Mon Sep 17 00:00:00 2001 From: Maxim Konovalov Date: Tue, 12 Nov 2002 14:15:59 +0000 Subject: [PATCH] o Fix usage(). o Explicitly initialize domain pointer. o Fix passwd file parsing. PR: bin/39671 (3) MFC after: 2 weeks --- libexec/mknetid/mknetid.c | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/libexec/mknetid/mknetid.c b/libexec/mknetid/mknetid.c index dd08c5ae5674..66868664c3c5 100644 --- a/libexec/mknetid/mknetid.c +++ b/libexec/mknetid/mknetid.c @@ -91,7 +91,7 @@ usage(void) { fprintf (stderr, "%s\n%s\n", "usage: mknetid [-q] [-g group_file] [-p passwd_file] [-h hosts_file]", - " [-d netid_file] [-d domain]"); + " [-n netid_file] [-d domain]"); exit(1); } @@ -111,6 +111,7 @@ main(int argc, char *argv[]) char *ptr, *pidptr, *gidptr, *hptr; int quiet = 0; + domain = NULL; while ((ch = getopt(argc, argv, "g:p:h:n:d:q")) != -1) { switch(ch) { case 'g': @@ -180,22 +181,36 @@ domain not set"); * group information we just stored if necessary. */ while(fgets(readbuf, LINSIZ, pfp)) { - if ((ptr = strchr(readbuf, ':')) == NULL) + /* Ignore comments: ^[ \t]*# */ + for (ptr = readbuf; *ptr != '\0'; ptr++) + if (*ptr != ' ' && *ptr != '\t') + break; + if (*ptr == '#' || *ptr == '\0') + continue; + if ((ptr = strchr(readbuf, ':')) == NULL) { warnx("bad passwd file entry: %s", readbuf); + continue; + } *ptr = '\0'; ptr++; - if ((ptr = strchr(ptr, ':')) == NULL) + if ((ptr = strchr(ptr, ':')) == NULL) { warnx("bad passwd file entry: %s", readbuf); + continue; + } *ptr = '\0'; ptr++; pidptr = ptr; - if ((ptr = strchr(ptr, ':')) == NULL) + if ((ptr = strchr(ptr, ':')) == NULL) { warnx("bad passwd file entry: %s", readbuf); + continue; + } *ptr = '\0'; ptr++; gidptr = ptr; - if ((ptr = strchr(ptr, ':')) == NULL) + if ((ptr = strchr(ptr, ':')) == NULL) { warnx("bad passwd file entry: %s", readbuf); + continue; + } *ptr = '\0'; i = atol(gidptr);