mirror of
https://github.com/AsahiLinux/u-boot
synced 2025-02-16 14:08:45 +00:00
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: 1043d0a029
("fdt: Add fdtgrep tool")
Signed-off-by: Mikhail Ilin <ilin.mikhail.ol@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
parent
17f8a74876
commit
4b95e8407e
1 changed files with 6 additions and 2 deletions
|
@ -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);
|
||||
|
|
Loading…
Add table
Reference in a new issue