btrfs-progs: Fix number of arguments check of 'btrfs fi df'

'btrfs fi df' needs exactly one arguments as mount option,
but as 3.17 we can run 'btrfs fi df' without any argument,
and it will error as "ERROR: can't access '%s'" which means
the argument number does not do what it should.

The bug is caused by manually modify the optind and use check_argc_max()
instead of the original check_argc_exact().

This patch fixes it by not modifying the optind and use check_argc_exact()
again.

Signed-off-by: Qu Wenruo <quwenruo@cn.fujitsu.com>
Signed-off-by: David Sterba <dsterba@suse.cz>
This commit is contained in:
Qu Wenruo 2014-10-21 16:31:17 +08:00 committed by David Sterba
parent 34ed841dcd
commit ae8f7f687f

View File

@ -241,7 +241,6 @@ static int cmd_df(int argc, char **argv)
DIR *dirstream = NULL;
unsigned unit_mode = UNITS_DEFAULT;
optind = 1;
while (1) {
int long_index;
static const struct option long_options[] = {
@ -290,7 +289,7 @@ static int cmd_df(int argc, char **argv)
}
}
if (check_argc_max(argc, optind + 1))
if (check_argc_exact(argc, optind + 1))
usage(cmd_df_usage);
path = argv[optind];