diff --git a/usr.sbin/chkgrp/chkgrp.c b/usr.sbin/chkgrp/chkgrp.c index 635ec8fc9865..eca26afa60f2 100644 --- a/usr.sbin/chkgrp/chkgrp.c +++ b/usr.sbin/chkgrp/chkgrp.c @@ -36,6 +36,8 @@ __FBSDID("$FreeBSD$"); #include #include +static char empty[] = { 0 }; + static void usage(void) { @@ -105,6 +107,13 @@ main(int argc, char *argv[]) line[i++] = 0; } + if (k < 4) { + warnx("%s: line %d: missing field(s)", gfn, n); + for ( ; k < 4; k++) + f[k] = empty; + e++; + } + for (cp = f[0] ; *cp ; cp++) { if (!isalnum(*cp) && *cp != '.' && *cp != '_' && *cp != '-' && (cp > f[0] || *cp != '+')) { @@ -121,11 +130,6 @@ main(int argc, char *argv[]) } } - if (k < 4) { - warnx("%s: line %d: missing field(s)", gfn, n); - e++; - } - /* check if fourth field ended with a colon */ if (i < len) { warnx("%s: line %d: too many fields", gfn, n);