diff --git a/tools/firmware-utils/src/mksenaofw.c b/tools/firmware-utils/src/mksenaofw.c index 7ea58f56d7a..0f10ebdfbeb 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*/ + /* Check required arguments */ + if (mode == NONE) { + fprintf(stderr, "A mode must be defined\n"); + usage(progname, EXIT_FAILURE); + } + + if (input_file == NULL || output_file == NULL) { + fprintf(stderr, "Input and output files must be defined\n"); + usage(progname, EXIT_FAILURE); + } + + 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); - } else if (input_file == 0 || output_file == 0) { - fprintf(stderr, "Input and output files must be defined\n"); - usage(progname, EXIT_FAILURE); - } else if (header.vendor_id == 0 || header.product_id == 0) { + } + + 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); } - switch (mode) { - case NONE: - fprintf(stderr, "A mode must be defined\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; }