From: Jes Sorensen <jes.soren...@redhat.com> This patch changes qemu-img to exit if an unknown option is detected, instead of trying to continue with a set of arguments which may be incorrect.
Signed-off-by: Jes Sorensen <jes.soren...@redhat.com> --- qemu-img.c | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 48 insertions(+), 0 deletions(-) diff --git a/qemu-img.c b/qemu-img.c index d0dc445..f2e1c94 100644 --- a/qemu-img.c +++ b/qemu-img.c @@ -304,6 +304,12 @@ static int img_create(int argc, char **argv) flags = 0; for(;;) { c = getopt(argc, argv, "F:b:f:he6o:"); + /* + * Fail if we detect an unknown argument + */ + if (c == '?') { + return 1; + } if (c == -1) { break; } @@ -472,6 +478,12 @@ static int img_check(int argc, char **argv) fmt = NULL; for(;;) { c = getopt(argc, argv, "f:h"); + /* + * Fail if we detect an unknown argument + */ + if (c == '?') { + return 1; + } if (c == -1) { break; } @@ -550,6 +562,12 @@ static int img_commit(int argc, char **argv) fmt = NULL; for(;;) { c = getopt(argc, argv, "f:h"); + /* + * Fail if we detect an unknown argument + */ + if (c == '?') { + return 1; + } if (c == -1) { break; } @@ -688,6 +706,12 @@ static int img_convert(int argc, char **argv) flags = 0; for(;;) { c = getopt(argc, argv, "f:O:B:s:hce6o:"); + /* + * Fail if we detect an unknown argument + */ + if (c == '?') { + return 1; + } if (c == -1) { break; } @@ -1094,6 +1118,12 @@ static int img_info(int argc, char **argv) fmt = NULL; for(;;) { c = getopt(argc, argv, "f:h"); + /* + * Fail if we detect an unknown argument + */ + if (c == '?') { + return 1; + } if (c == -1) { break; } @@ -1171,6 +1201,12 @@ static int img_snapshot(int argc, char **argv) /* Parse commandline parameters */ for(;;) { c = getopt(argc, argv, "la:c:d:h"); + /* + * Fail if we detect an unknown argument + */ + if (c == '?') { + return 1; + } if (c == -1) { break; } @@ -1286,6 +1322,12 @@ static int img_rebase(int argc, char **argv) for(;;) { c = getopt(argc, argv, "uhf:F:b:"); + /* + * Fail if we detect an unknown argument + */ + if (c == '?') { + return 1; + } if (c == -1) { break; } @@ -1500,6 +1542,12 @@ static int img_resize(int argc, char **argv) fmt = NULL; for(;;) { c = getopt(argc, argv, "f:h"); + /* + * Fail if we detect an unknown argument + */ + if (c == '?') { + return 1; + } if (c == -1) { break; } -- 1.7.3.2