From 0ac50a661b4c717f095d11caf51f6e3e610a608d Mon Sep 17 00:00:00 2001 From: Mathias Kresin Date: Wed, 17 Aug 2016 20:08:52 +0200 Subject: [PATCH] firmware-utils: mksenaofw: rework option validation The options firmware_type, vendor_id and product_id are not required for decoding an image file. Signed-off-by: Mathias Kresin --- tools/firmware-utils/src/mksenaofw.c | 41 +++++++++++++++------------- 1 file changed, 22 insertions(+), 19 deletions(-) diff --git a/tools/firmware-utils/src/mksenaofw.c b/tools/firmware-utils/src/mksenaofw.c index 7ea58f56d7..0f10ebdfbe 100644 --- a/tools/firmware-utils/src/mksenaofw.c +++ b/tools/firmware-utils/src/mksenaofw.c @@ -385,33 +385,36 @@ int main(int argc, char *argv[]) } } - /* Check required arguments*/ - if (header.firmware_type == 0) { - fprintf(stderr, "Firmware type must be defined\n"); + /* Check required arguments */ + if (mode == NONE) { + fprintf(stderr, "A mode must be defined\n"); usage(progname, EXIT_FAILURE); - } else if (input_file == 0 || output_file == 0) { + } + + if (input_file == NULL || output_file == NULL) { fprintf(stderr, "Input and output files must be defined\n"); usage(progname, EXIT_FAILURE); - } else if (header.vendor_id == 0 || header.product_id == 0) { - fprintf(stderr, "Vendor ID and Product ID must be defined and non-zero\n"); + } + + if (mode == DECODE) { + if (decode_image(input_file, output_file) < 0) + return EXIT_FAILURE; + + return EXIT_SUCCESS; + } + + if (header.firmware_type == 0) { + fprintf(stderr, "Firmware type must be defined\n"); usage(progname, EXIT_FAILURE); } - switch (mode) { - case NONE: - fprintf(stderr, "A mode must be defined\n"); + if (header.vendor_id == 0 || header.product_id == 0) { + fprintf(stderr, "Vendor ID and Product ID must be defined and non-zero\n"); usage(progname, EXIT_FAILURE); - break; - case ENCODE: - if (encode_image(input_file, output_file, &header, pad ? block_size : 0) - < 0) - return EXIT_FAILURE; - break; - case DECODE: - if (decode_image(input_file, output_file) < 0) - return EXIT_FAILURE; - break; } + if (encode_image(input_file, output_file, &header, pad ? block_size : 0) < 0) + return EXIT_FAILURE; + return EXIT_SUCCESS; } -- 2.30.2