mirror of
https://github.com/AsahiLinux/u-boot
synced 2025-01-10 20:28:59 +00:00
tools: mkimage : bugfix returns correct value for list command
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@marvell.com> Signed-off-by: Wolfgang Denk <wd@denx.de>
This commit is contained in:
parent
f587fed25c
commit
40864630b2
1 changed files with 14 additions and 12 deletions
|
@ -27,7 +27,7 @@
|
||||||
extern unsigned long crc32 (unsigned long crc, const char *buf, unsigned int len);
|
extern unsigned long crc32 (unsigned long crc, const char *buf, unsigned int len);
|
||||||
static void copy_file (int, const char *, int);
|
static void copy_file (int, const char *, int);
|
||||||
static void usage (void);
|
static void usage (void);
|
||||||
static void image_verify_header (char *, int);
|
static int image_verify_header (char *, int);
|
||||||
static void fit_handle_file (void);
|
static void fit_handle_file (void);
|
||||||
|
|
||||||
char *datafile;
|
char *datafile;
|
||||||
|
@ -59,6 +59,7 @@ main (int argc, char **argv)
|
||||||
struct stat sbuf;
|
struct stat sbuf;
|
||||||
unsigned char *ptr;
|
unsigned char *ptr;
|
||||||
char *name = "";
|
char *name = "";
|
||||||
|
int retval;
|
||||||
|
|
||||||
cmdname = *argv;
|
cmdname = *argv;
|
||||||
|
|
||||||
|
@ -218,24 +219,24 @@ NXTARG: ;
|
||||||
exit (EXIT_FAILURE);
|
exit (EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (fdt_check_header (ptr)) {
|
if (!(retval = fdt_check_header (ptr))) {
|
||||||
/* old-style image */
|
|
||||||
image_verify_header ((char *)ptr, sbuf.st_size);
|
|
||||||
image_print_contents ((image_header_t *)ptr);
|
|
||||||
} else {
|
|
||||||
/* FIT image */
|
/* FIT image */
|
||||||
fit_print_contents (ptr);
|
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) munmap((void *)ptr, sbuf.st_size);
|
||||||
(void) close (ifd);
|
(void) close (ifd);
|
||||||
|
|
||||||
exit (EXIT_SUCCESS);
|
exit (retval);
|
||||||
} else if (fflag) {
|
} else if (fflag) {
|
||||||
/* Flattened Image Tree (FIT) format handling */
|
/* Flattened Image Tree (FIT) format handling */
|
||||||
debug ("FIT format handling\n");
|
debug ("FIT format handling\n");
|
||||||
fit_handle_file ();
|
fit_handle_file ();
|
||||||
exit (EXIT_SUCCESS);
|
exit (retval);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -479,7 +480,7 @@ usage ()
|
||||||
exit (EXIT_FAILURE);
|
exit (EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static int
|
||||||
image_verify_header (char *ptr, int image_size)
|
image_verify_header (char *ptr, int image_size)
|
||||||
{
|
{
|
||||||
int len;
|
int len;
|
||||||
|
@ -499,7 +500,7 @@ image_verify_header (char *ptr, int image_size)
|
||||||
fprintf (stderr,
|
fprintf (stderr,
|
||||||
"%s: Bad Magic Number: \"%s\" is no valid image\n",
|
"%s: Bad Magic Number: \"%s\" is no valid image\n",
|
||||||
cmdname, imagefile);
|
cmdname, imagefile);
|
||||||
exit (EXIT_FAILURE);
|
return -FDT_ERR_BADMAGIC;
|
||||||
}
|
}
|
||||||
|
|
||||||
data = (char *)hdr;
|
data = (char *)hdr;
|
||||||
|
@ -512,7 +513,7 @@ image_verify_header (char *ptr, int image_size)
|
||||||
fprintf (stderr,
|
fprintf (stderr,
|
||||||
"%s: ERROR: \"%s\" has bad header checksum!\n",
|
"%s: ERROR: \"%s\" has bad header checksum!\n",
|
||||||
cmdname, imagefile);
|
cmdname, imagefile);
|
||||||
exit (EXIT_FAILURE);
|
return -FDT_ERR_BADSTATE;
|
||||||
}
|
}
|
||||||
|
|
||||||
data = ptr + sizeof(image_header_t);
|
data = ptr + sizeof(image_header_t);
|
||||||
|
@ -522,8 +523,9 @@ image_verify_header (char *ptr, int image_size)
|
||||||
fprintf (stderr,
|
fprintf (stderr,
|
||||||
"%s: ERROR: \"%s\" has corrupted data!\n",
|
"%s: ERROR: \"%s\" has corrupted data!\n",
|
||||||
cmdname, imagefile);
|
cmdname, imagefile);
|
||||||
exit (EXIT_FAILURE);
|
return -FDT_ERR_BADSTRUCTURE;
|
||||||
}
|
}
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in a new issue