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 <[email protected]>
---
 common/imd.c | 13 +++++++++----
 1 file 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) {
-- 
2.20.1


_______________________________________________
barebox mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/barebox

Reply via email to