On Thu, 7 May 2020 17:23:36 +0800 Yunfeng Ye <yeyunf...@huawei.com> wrote:
> The @data and @fd is leak in the error path of apply_xbc(), so this > patch fix it. Good catch! Thanks for fixing! Acked-by: Masami Hiramatsu <mhira...@kernel.org> > > Signed-off-by: Yunfeng Ye <yeyunf...@huawei.com> > --- > tools/bootconfig/main.c | 9 ++++++--- > 1 file changed, 6 insertions(+), 3 deletions(-) > > diff --git a/tools/bootconfig/main.c b/tools/bootconfig/main.c > index 16b9a420e6fd..001076c51712 100644 > --- a/tools/bootconfig/main.c > +++ b/tools/bootconfig/main.c > @@ -314,6 +314,7 @@ int apply_xbc(const char *path, const char *xbc_path) > ret = delete_xbc(path); > if (ret < 0) { > pr_err("Failed to delete previous boot config: %d\n", ret); > + free(data); > return ret; > } > > @@ -321,24 +322,26 @@ int apply_xbc(const char *path, const char *xbc_path) > fd = open(path, O_RDWR | O_APPEND); > if (fd < 0) { > pr_err("Failed to open %s: %d\n", path, fd); > + free(data); > return fd; > } > /* TODO: Ensure the @path is initramfs/initrd image */ > ret = write(fd, data, size + 8); > if (ret < 0) { > pr_err("Failed to apply a boot config: %d\n", ret); > - return ret; > + goto out; > } > /* Write a magic word of the bootconfig */ > ret = write(fd, BOOTCONFIG_MAGIC, BOOTCONFIG_MAGIC_LEN); > if (ret < 0) { > pr_err("Failed to apply a boot config magic: %d\n", ret); > - return ret; > + goto out; > } > +out: > close(fd); > free(data); > > - return 0; > + return ret; > } > > int usage(void) > -- > 1.8.3.1 > -- Masami Hiramatsu <mhira...@kernel.org>