From: Mikhail Ilin Date: Wed, 23 Nov 2022 11:31:03 +0000 (+0300) Subject: tools: fdtgrep: Fix handle leak X-Git-Url: http://git.dujemihanovic.xyz/?a=commitdiff_plain;h=4b95e8407eba6e6fd73341695de15dec19e723a8;p=u-boot.git tools: fdtgrep: Fix handle leak The handle "fd" was created in fdtgrep.c:708 by calling the "open" function and is lost in fdtgrep.c:716 and fdtgrep.c:723. Close file descriptor 'fd' before exiting with an error from function utilfdt_read_err_len(const char *filename, char **buffp, off_t *len). Fixes: 1043d0a0296a ("fdt: Add fdtgrep tool") Signed-off-by: Mikhail Ilin Reviewed-by: Simon Glass --- diff --git a/tools/fdtgrep.c b/tools/fdtgrep.c index 641d6a2e3e..7eabcab439 100644 --- a/tools/fdtgrep.c +++ b/tools/fdtgrep.c @@ -712,15 +712,19 @@ int utilfdt_read_err_len(const char *filename, char **buffp, off_t *len) /* Loop until we have read everything */ buf = malloc(bufsize); - if (!buf) + if (!buf) { + close(fd); return -ENOMEM; + } do { /* Expand the buffer to hold the next chunk */ if (offset == bufsize) { bufsize *= 2; buf = realloc(buf, bufsize); - if (!buf) + if (!buf) { + close(fd); return -ENOMEM; + } } ret = read(fd, &buf[offset], bufsize - offset);