tools/fit_image.c: Update some return code paths
Coverity has found some problems with the return paths in parts of this
code. We have a case where we were going to the wrong part of the
unwind (open() failed so we cannot close the fd), a case where we were
only free()ing our buf on the error path and finally a case where we did
not munmap in the failure path.
Reported-by: Coverity (CID: 138492, 138495, 143064)
Signed-off-by: Tom Rini <trini@konsulko.com>
diff --git a/tools/fit_image.c b/tools/fit_image.c
index 4dc8bd8..c602656 100644
--- a/tools/fit_image.c
+++ b/tools/fit_image.c
@@ -372,7 +372,7 @@
if (fd < 0) {
fprintf(stderr, "%s: Can't open %s: %s\n",
params->cmdname, fname, strerror(errno));
- goto err;
+ goto err_buf;
}
ret = write(fd, buf, size);
if (ret != size) {
@@ -501,6 +501,7 @@
ret = -EIO;
goto err;
}
+ free(buf);
close(fd);
return 0;
@@ -601,6 +602,7 @@
ret = 0;
err:
+ munmap(old_fdt, sbuf.st_size);
free(fdt);
close(fd);
return ret;