[U-Boot] [PATCH v2 1/8] tools: mkimage : bugfix returns correct value for list command
Prafulla Wadaskar
prafulla at marvell.com
Mon Aug 10 15:19:37 CEST 2009
List command always return "EXIT_SUCCESS" even in case of
failure by any means.
This patch return 0 if list command is sucessful,
returns negative value reported by check_header functions
Signed-off-by: Prafulla Wadaskar <prafulla at marvell.com>
---
Change log:
v2: added code rewritten to look it better as per review feedback for v1
tools/mkimage.c | 26 ++++++++++++++------------
1 files changed, 14 insertions(+), 12 deletions(-)
diff --git a/tools/mkimage.c b/tools/mkimage.c
index 02cdb95..dc42924 100644
--- a/tools/mkimage.c
+++ b/tools/mkimage.c
@@ -28,7 +28,7 @@
extern unsigned long crc32 (unsigned long crc, const char *buf, unsigned int len);
static void copy_file (int, const char *, int);
static void usage (void);
-static void image_verify_header (char *, int);
+static int image_verify_header (char *, int);
static void fit_handle_file (void);
char *datafile;
@@ -60,6 +60,7 @@ main (int argc, char **argv)
struct stat sbuf;
unsigned char *ptr;
char *name = "";
+ int retval;
cmdname = *argv;
@@ -219,24 +220,24 @@ NXTARG: ;
exit (EXIT_FAILURE);
}
- if (fdt_check_header (ptr)) {
- /* old-style image */
- image_verify_header ((char *)ptr, sbuf.st_size);
- image_print_contents ((image_header_t *)ptr);
- } else {
+ if (!(retval = fdt_check_header (ptr))) {
/* FIT image */
fit_print_contents (ptr);
+ } else if (!(retval = image_verify_header ((char *)ptr,
+ sbuf.st_size))) {
+ /* old-style image */
+ image_print_contents ((image_header_t *)ptr);
}
(void) munmap((void *)ptr, sbuf.st_size);
(void) close (ifd);
- exit (EXIT_SUCCESS);
+ exit (retval);
} else if (fflag) {
/* Flattened Image Tree (FIT) format handling */
debug ("FIT format handling\n");
fit_handle_file ();
- exit (EXIT_SUCCESS);
+ exit (retval);
}
/*
@@ -480,7 +481,7 @@ usage ()
exit (EXIT_FAILURE);
}
-static void
+static int
image_verify_header (char *ptr, int image_size)
{
int len;
@@ -500,7 +501,7 @@ image_verify_header (char *ptr, int image_size)
fprintf (stderr,
"%s: Bad Magic Number: \"%s\" is no valid image\n",
cmdname, imagefile);
- exit (EXIT_FAILURE);
+ return -FDT_ERR_BADMAGIC;
}
data = (char *)hdr;
@@ -513,7 +514,7 @@ image_verify_header (char *ptr, int image_size)
fprintf (stderr,
"%s: ERROR: \"%s\" has bad header checksum!\n",
cmdname, imagefile);
- exit (EXIT_FAILURE);
+ return -FDT_ERR_BADSTATE;
}
data = ptr + sizeof(image_header_t);
@@ -523,8 +524,9 @@ image_verify_header (char *ptr, int image_size)
fprintf (stderr,
"%s: ERROR: \"%s\" has corrupted data!\n",
cmdname, imagefile);
- exit (EXIT_FAILURE);
+ return -FDT_ERR_BADSTRUCTURE;
}
+ return 0;
}
/**
--
1.5.3.3
More information about the U-Boot
mailing list