From 5e0c63e2e3e7a0aefb01d877dd7bb731ba6f00f1 Mon Sep 17 00:00:00 2001 From: Horst Kronstorfer Date: Mon, 5 Dec 2011 00:55:24 +0000 Subject: [PATCH] mkenvimage: Fix getopt() error handling Since the original implementation indicates explicit error handling we turn off getopt()'s internal error messaging to avoid duplicate error messages. Additionally we add ':' (missing option argument) error handling. Signed-off-by: Horst Kronstorfer --- tools/mkenvimage.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/tools/mkenvimage.c b/tools/mkenvimage.c index b7b0e0fade..22d1b88ba2 100644 --- a/tools/mkenvimage.c +++ b/tools/mkenvimage.c @@ -80,8 +80,11 @@ int main(int argc, char **argv) int fp, ep; + /* Turn off getopt()'s internal error message */ + opterr = 0; + /* Parse the cmdline */ - while ((option = getopt(argc, argv, "s:o:rbp:h")) != -1) { + while ((option = getopt(argc, argv, ":s:o:rbp:h")) != -1) { switch (option) { case 's': datasize = strtol(optarg, NULL, 0); @@ -106,8 +109,13 @@ int main(int argc, char **argv) case 'h': usage(argv[0]); return EXIT_SUCCESS; + case ':': + fprintf(stderr, "Missing argument for option -%c\n", + optopt); + usage(argv[0]); + return EXIT_FAILURE; default: - fprintf(stderr, "Wrong option -%c\n", option); + fprintf(stderr, "Wrong option -%c\n", optopt); usage(argv[0]); return EXIT_FAILURE; } -- 2.39.5