Fixed exit code in previous commit. "var++" to set a flag to nonzero

is a style bug at best.  When the variable isn't a flag, it potentially
overflows after a large number of settings.  Here the number of settings
is limited by ARG_MAX, but the variable is the exit code so it became
bogus after the second setting and effectively overflowed to 0 after
approx. 128 settings.

Fixed some style bugs involving comments in and near previous commit.

Clarification of previous commit message: df -t didn't give undefined
behaviour, and the behaviour used to conform perfectly with the man
page, since the buggy behaviour is documented in the BUGS section.  -t
just worked when no files or file systems were specified, and was just
ignored if a file or file system was specified.
This commit is contained in:
Bruce Evans 2003-06-03 11:54:42 +00:00
parent b9662ddd18
commit 0e7d023f34

View File

@ -271,6 +271,7 @@ main(int argc, char *argv[])
}
} else
mntpt = *argv;
/*
* Statfs does not take a `wait' flag, so we cannot
* implement nflag here.
@ -280,15 +281,18 @@ main(int argc, char *argv[])
rv = 1;
continue;
}
/* Check to make sure the arguments we've been
* given are satisfied. Return an error if we
* have been asked to list a mount point that does
* not match the other args we've been given (-l, -t, etc.)
/*
* Check to make sure the arguments we've been given are
* satisfied. Return an error if we have been asked to
* list a mount point that does not match the other args
* we've been given (-l, -t, etc.).
*/
if (checkvfsname(statfsbuf.f_fstypename, vfslist)) {
rv++;
rv = 1;
continue;
}
if (argc == 1) {
bzero(&maxwidths, sizeof(maxwidths));
update_maxwidths(&maxwidths, &statfsbuf);