[source] firmware-utils: mksenaofw: rework option validation

LEDE Commits lede-commits at lists.infradead.org
Fri Sep 9 03:34:46 PDT 2016


mkresin pushed a commit to source.git, branch master:
https://git.lede-project.org/0ac50a661b4c717f095d11caf51f6e3e610a608d

commit 0ac50a661b4c717f095d11caf51f6e3e610a608d
Author: Mathias Kresin <dev at kresin.me>
AuthorDate: Wed Aug 17 20:08:52 2016 +0200

    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 <dev at kresin.me>
---
 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 7ea58f5..0f10ebd 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;
 }



More information about the lede-commits mailing list