diff options
author | bde <bde@FreeBSD.org> | 2003-06-03 11:54:42 +0000 |
---|---|---|
committer | bde <bde@FreeBSD.org> | 2003-06-03 11:54:42 +0000 |
commit | 1181cb31e7ce64b1418b6406454d5d810fe73261 (patch) | |
tree | 33f75390f1045a5bba528461bc448c3c4377ef19 /bin/df | |
parent | 1a0e4e22eb2af794e5a4c4f94f46ab5ad3e4c1a9 (diff) | |
download | FreeBSD-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/df')
-rw-r--r-- | bin/df/df.c | 14 |
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); |