Commit 5e0c63e2e3e7a0aefb01d877dd7bb731ba6f00f1

Authored by Horst Kronstorfer
Committed by Wolfgang Denk
1 parent d30011bf61
Exists in master and in 56 other branches 8qm-imx_v2020.04_5.4.70_2.3.0, emb_lf_v2022.04, emb_lf_v2023.04, emb_lf_v2024.04, imx_v2015.04_4.1.15_1.0.0_ga, pitx_8mp_lf_v2020.04, smarc-8m-android-10.0.0_2.6.0, smarc-8m-android-11.0.0_2.0.0, smarc-8mp-android-11.0.0_2.0.0, smarc-emmc-imx_v2014.04_3.10.53_1.1.0_ga, smarc-emmc-imx_v2014.04_3.14.28_1.0.0_ga, smarc-imx-l5.0.0_1.0.0-ga, smarc-imx6_v2018.03_4.14.98_2.0.0_ga, smarc-imx7_v2017.03_4.9.11_1.0.0_ga, smarc-imx7_v2018.03_4.14.98_2.0.0_ga, smarc-imx_v2014.04_3.14.28_1.0.0_ga, smarc-imx_v2015.04_4.1.15_1.0.0_ga, smarc-imx_v2017.03_4.9.11_1.0.0_ga, smarc-imx_v2017.03_4.9.88_2.0.0_ga, smarc-imx_v2017.03_o8.1.0_1.3.0_8m, smarc-imx_v2018.03_4.14.78_1.0.0_ga, smarc-m6.0.1_2.1.0-ga, smarc-n7.1.2_2.0.0-ga, smarc-rel_imx_4.1.15_2.0.0_ga, smarc_8m-imx_v2018.03_4.14.98_2.0.0_ga, smarc_8m-imx_v2019.04_4.19.35_1.1.0, smarc_8m_00d0-imx_v2018.03_4.14.98_2.0.0_ga, smarc_8mm-imx_v2018.03_4.14.98_2.0.0_ga, smarc_8mm-imx_v2019.04_4.19.35_1.1.0, smarc_8mm-imx_v2020.04_5.4.24_2.1.0, smarc_8mp_lf_v2020.04, smarc_8mq-imx_v2020.04_5.4.24_2.1.0, smarc_8mq_lf_v2020.04, ti-u-boot-2015.07, u-boot-2013.01.y, v2013.10, v2013.10-smarct33, v2013.10-smartmen, v2014.01, v2014.04, v2014.04-smarct33, v2014.04-smarct33-emmc, v2014.04-smartmen, v2014.07, v2014.07-smarct33, v2014.07-smartmen, v2015.07-smarct33, v2015.07-smarct33-emmc, v2015.07-smarct4x, v2016.05-dlt, v2016.05-smarct3x, v2016.05-smarct3x-emmc, v2016.05-smarct4x, v2017.01-smarct3x, v2017.01-smarct3x-emmc, v2017.01-smarct4x

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 <hkronsto@frequentis.com>

Showing 1 changed file with 10 additions and 2 deletions Side-by-side Diff

... ... @@ -80,8 +80,11 @@
80 80  
81 81 int fp, ep;
82 82  
  83 + /* Turn off getopt()'s internal error message */
  84 + opterr = 0;
  85 +
83 86 /* Parse the cmdline */
84   - while ((option = getopt(argc, argv, "s:o:rbp:h")) != -1) {
  87 + while ((option = getopt(argc, argv, ":s:o:rbp:h")) != -1) {
85 88 switch (option) {
86 89 case 's':
87 90 datasize = strtol(optarg, NULL, 0);
88 91  
... ... @@ -106,8 +109,13 @@
106 109 case 'h':
107 110 usage(argv[0]);
108 111 return EXIT_SUCCESS;
  112 + case ':':
  113 + fprintf(stderr, "Missing argument for option -%c\n",
  114 + optopt);
  115 + usage(argv[0]);
  116 + return EXIT_FAILURE;
109 117 default:
110   - fprintf(stderr, "Wrong option -%c\n", option);
  118 + fprintf(stderr, "Wrong option -%c\n", optopt);
111 119 usage(argv[0]);
112 120 return EXIT_FAILURE;
113 121 }