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