summaryrefslogtreecommitdiffstats
path: root/bin
diff options
context:
space:
mode:
authorbde <bde@FreeBSD.org>2003-06-03 11:54:42 +0000
committerbde <bde@FreeBSD.org>2003-06-03 11:54:42 +0000
commit1181cb31e7ce64b1418b6406454d5d810fe73261 (patch)
tree33f75390f1045a5bba528461bc448c3c4377ef19 /bin
parent1a0e4e22eb2af794e5a4c4f94f46ab5ad3e4c1a9 (diff)
downloadFreeBSD-src-1181cb31e7ce64b1418b6406454d5d810fe73261.zip
FreeBSD-src-1181cb31e7ce64b1418b6406454d5d810fe73261.tar.gz
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.
Diffstat (limited to 'bin')
-rw-r--r--bin/df/df.c14
1 files changed, 9 insertions, 5 deletions
diff --git a/bin/df/df.c b/bin/df/df.c
index bb12fd4..cdb2083 100644
--- a/bin/df/df.c
+++ b/bin/df/df.c
@@ -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);
OpenPOWER on IntegriCloud