aboutsummaryrefslogtreecommitdiff
path: root/tools/mkimage.c
diff options
context:
space:
mode:
authorMylène Josserand <mylene.josserand@collabora.com>2020-07-08 11:52:50 +0200
committerTom Rini <trini@konsulko.com>2020-07-17 10:47:19 -0400
commitdd85dc55eb147cdcced1a4ee143b487d4aa6afa6 (patch)
tree2682df53acb19a923be986ecf38d4bc54f23f541 /tools/mkimage.c
parent5c6a4d5a2779d7c2611319076d9aa4a23981855f (diff)
downloadu-boot-dd85dc55eb147cdcced1a4ee143b487d4aa6afa6.zip
u-boot-dd85dc55eb147cdcced1a4ee143b487d4aa6afa6.tar.gz
u-boot-dd85dc55eb147cdcced1a4ee143b487d4aa6afa6.tar.bz2
mkimage: Fix error message if write less data then expected
Add a new error message in case the size of data written are shorter than the one expected. Currently, it will lead to the following error message: "mkimage: Write error on uImage: Success" This is not explicit when the error is because the device doesn't have enough space. Let's use a more understandable message: "mkimage: Write only 4202432/4682240 bytes, probably no space left on the device" Signed-off-by: Mylène Josserand <mylene.josserand@collabora.com> Reviewed-by: Walter Lozano <walter.lozano@collabora.com>
Diffstat (limited to 'tools/mkimage.c')
-rw-r--r--tools/mkimage.c15
1 files changed, 11 insertions, 4 deletions
diff --git a/tools/mkimage.c b/tools/mkimage.c
index d2cd191..7cb666d 100644
--- a/tools/mkimage.c
+++ b/tools/mkimage.c
@@ -674,7 +674,7 @@ copy_file (int ifd, const char *datafile, int pad)
int zero = 0;
uint8_t zeros[4096];
int offset = 0;
- int size;
+ int size, ret;
struct image_type_params *tparams = imagetool_get_type(params.type);
memset(zeros, 0, sizeof(zeros));
@@ -730,9 +730,16 @@ copy_file (int ifd, const char *datafile, int pad)
}
size = sbuf.st_size - offset;
- if (write(ifd, ptr + offset, size) != size) {
- fprintf (stderr, "%s: Write error on %s: %s\n",
- params.cmdname, params.imagefile, strerror(errno));
+
+ ret = write(ifd, ptr + offset, size);
+ if (ret != size) {
+ if (ret < 0)
+ fprintf (stderr, "%s: Write error on %s: %s\n",
+ params.cmdname, params.imagefile, strerror(errno));
+ else if (ret < size)
+ fprintf (stderr, "%s: Write only %d/%d bytes, "\
+ "probably no space left on the device\n",
+ params.cmdname, ret, size);
exit (EXIT_FAILURE);
}