diff options
author | Sascha Hauer <s.hauer@pengutronix.de> | 2020-12-07 09:26:13 +0100 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2020-12-07 09:27:50 +0100 |
commit | 2edf391153b7a8e106002e289011c67c5e315e7c (patch) | |
tree | 0a7e4492457e6d518713800b5abd74747e1fee29 /common | |
parent | cee45e68b5b2b415e786216e32fe3ef0f9dbbf02 (diff) | |
download | barebox-2edf391153b7a8e106002e289011c67c5e315e7c.tar.gz barebox-2edf391153b7a8e106002e289011c67c5e315e7c.tar.xz |
imd command: Bail out when crc generation/check fails
Generating a IMD crc can fail, so bail out with an error when it fails.
Also, when checking a IMD crc the result should be told to the caller.
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'common')
-rw-r--r-- | common/imd.c | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/common/imd.c b/common/imd.c index 4fd4431aa9..4aca8ea78f 100644 --- a/common/imd.c +++ b/common/imd.c @@ -489,10 +489,15 @@ int imd_command(int argc, char *argv[]) goto out; } - if (checksum) - imd_write_crc32(buf, imd_start, filename, size); - if (verify) - imd_verify_crc32(buf, size); + if (checksum) { + ret = imd_write_crc32(buf, imd_start, filename, size); + goto out; + } + + if (verify) { + ret = imd_verify_crc32(buf, size); + goto out; + } if (type == IMD_TYPE_INVALID) { imd_for_each(imd_start, imd) { |