From 00e5b1ffe79264929ea0dab871e5e797ab85497f Mon Sep 17 00:00:00 2001 From: Max Reitz Date: Mon, 19 Aug 2013 11:09:45 +0200 Subject: qemu-img: Error out for excess arguments RH-Author: Max Reitz Message-id: <1376910585-8875-1-git-send-email-mreitz@redhat.com> Patchwork-id: 53597 O-Subject: [RHEL-7 qemu-kvm PATCH] qemu-img: Error out for excess arguments Bugzilla: 992935 RH-Acked-by: Markus Armbruster RH-Acked-by: Kevin Wolf RH-Acked-by: Stefan Hajnoczi From: Kevin Wolf Don't silently ignore excess arguments at the end of the command line, but error out instead. This can catch typos like 'resize test.img + 1G', which doesn't increase the image size by 1G as intended, but truncates the image to 1G. Even for less dangerous commands, the old behaviour is confusing. Signed-off-by: Kevin Wolf Reviewed-by: Laszlo Ersek Reviewed-by: Stefan Hajnoczi (cherry picked from commit fc11eb26cee7e3621645dd40cd9de944201f590b) Signed-off-by: Max Reitz BZ: https://bugzilla.redhat.com/show_bug.cgi?id=992935 Brew: https://brewweb.devel.redhat.com/taskinfo?taskID=6181030 diff --git a/qemu-img.c b/qemu-img.c index cd096a1..c20ff66 100644 --- a/qemu-img.c +++ b/qemu-img.c @@ -393,6 +393,9 @@ static int img_create(int argc, char **argv) } img_size = (uint64_t)sval; } + if (optind != argc) { + help(); + } if (options && is_help_option(options)) { return print_block_option_help(filename, fmt); @@ -570,7 +573,7 @@ static int img_check(int argc, char **argv) break; } } - if (optind >= argc) { + if (optind != argc - 1) { help(); } filename = argv[optind++]; @@ -681,7 +684,7 @@ static int img_commit(int argc, char **argv) break; } } - if (optind >= argc) { + if (optind != argc - 1) { help(); } filename = argv[optind++]; @@ -927,7 +930,7 @@ static int img_compare(int argc, char **argv) } - if (optind > argc - 2) { + if (optind != argc - 2) { help(); } filename1 = argv[optind++]; @@ -1882,7 +1885,7 @@ static int img_info(int argc, char **argv) break; } } - if (optind >= argc) { + if (optind != argc - 1) { help(); } filename = argv[optind++]; @@ -1983,7 +1986,7 @@ static int img_snapshot(int argc, char **argv) } } - if (optind >= argc) { + if (optind != argc - 1) { help(); } filename = argv[optind++]; @@ -2094,7 +2097,7 @@ static int img_rebase(int argc, char **argv) progress = 0; } - if ((optind >= argc) || (!unsafe && !out_baseimg)) { + if ((optind != argc - 1) || (!unsafe && !out_baseimg)) { help(); } filename = argv[optind++]; @@ -2373,7 +2376,7 @@ static int img_resize(int argc, char **argv) break; } } - if (optind >= argc) { + if (optind != argc - 1) { help(); } filename = argv[optind++];