Message ID | 1506478484-12777-1-git-send-email-trini@konsulko.com |
---|---|
State | Accepted |
Commit | 3c2dff5490831f85f06aa78aad5ef537b661cecf |
Delegated to: | Tom Rini |
Headers | show |
Series | [U-Boot] tools/fit_image.c: Update some return code paths | expand |
On Tue, Sep 26, 2017 at 10:14:44PM -0400, Tom Rini wrote: > 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> Applied to u-boot/master, thanks!
diff --git a/tools/fit_image.c b/tools/fit_image.c index 4dc8bd886245..c6026567f3a6 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;
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> --- tools/fit_image.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)