summaryrefslogtreecommitdiff
path: root/tools/fit_image.c
diff options
context:
space:
mode:
authorTom Rini <trini@konsulko.com>2017-09-26 22:14:44 -0400
committerTom Rini <trini@konsulko.com>2017-10-06 11:28:22 -0400
commit3c2dff5490831f85f06aa78aad5ef537b661cecf (patch)
tree6a863bfe581b8c9d0b970b992b3499c697db0adf /tools/fit_image.c
parent146dda391126d4f199c7692f2342efcc34b45ebd (diff)
downloadu-boot-3c2dff5490831f85f06aa78aad5ef537b661cecf.tar.gz
u-boot-3c2dff5490831f85f06aa78aad5ef537b661cecf.tar.bz2
u-boot-3c2dff5490831f85f06aa78aad5ef537b661cecf.zip
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>
Diffstat (limited to 'tools/fit_image.c')
-rw-r--r--tools/fit_image.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/tools/fit_image.c b/tools/fit_image.c
index 4dc8bd8862..c6026567f3 100644
--- a/tools/fit_image.c
+++ b/tools/fit_image.c
@@ -372,7 +372,7 @@ static int fit_build(struct image_tool_params *params, const char *fname)
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 @@ static int fit_extract_data(struct image_tool_params *params, const char *fname)
ret = -EIO;
goto err;
}
+ free(buf);
close(fd);
return 0;
@@ -601,6 +602,7 @@ static int fit_import_data(struct image_tool_params *params, const char *fname)
ret = 0;
err:
+ munmap(old_fdt, sbuf.st_size);
free(fdt);
close(fd);
return ret;