From f247850ff064c0cf93973d51008dbfbccf0dda61 Mon Sep 17 00:00:00 2001 From: Marc Hartmayer Date: Mon, 27 Sep 2021 14:23:29 +0000 Subject: [PATCH] zdump: only `mount` command uses the optional arguments MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Currently, for some commands (e.g. `zgetdump unmount`) unused positional arguments are silently ignored, for some commands (`zgetdump mount`) they're not. Therefore let's fix this by always returning an error message and exit code if too many positional arguments are given. Reviewed-by: Alexander Egorenkov Signed-off-by: Marc Hartmayer Signed-off-by: Jan Höppner --- zdump/opts.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/zdump/opts.c b/zdump/opts.c index b52c39c4..f1d3033d 100644 --- a/zdump/opts.c +++ b/zdump/opts.c @@ -233,7 +233,7 @@ static void parse_pos_args(struct options *opts, char *argv[], int argc) case ZG_ACTION_DEVICE_INFO: if (pos_args == 0) ERR_EXIT("No device or dump specified"); - if (pos_args > 1 && !opts->debug_specified) + if (pos_args > 1) ERR_EXIT("Too many positional parameters specified"); device_set(opts, argv[optind]); break; @@ -252,6 +252,8 @@ static void parse_pos_args(struct options *opts, char *argv[], int argc) case ZG_ACTION_UMOUNT: if (pos_args == 0) ERR_EXIT("No mount point specified"); + if (pos_args > 1) + ERR_EXIT("Too many positional parameters specified"); mount_point_set(opts, argv[optind]); break; }