summaryrefslogtreecommitdiffstats
path: root/common/imd.c
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2020-12-07 09:26:13 +0100
committerSascha Hauer <s.hauer@pengutronix.de>2020-12-07 09:27:50 +0100
commit2edf391153b7a8e106002e289011c67c5e315e7c (patch)
tree0a7e4492457e6d518713800b5abd74747e1fee29 /common/imd.c
parentcee45e68b5b2b415e786216e32fe3ef0f9dbbf02 (diff)
downloadbarebox-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/imd.c')
-rw-r--r--common/imd.c13
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) {