[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH-for-5.2] hw/smbios: Fix leaked fd in save_opt_one() error pat
From: |
Laszlo Ersek |
Subject: |
Re: [PATCH-for-5.2] hw/smbios: Fix leaked fd in save_opt_one() error path |
Date: |
Mon, 2 Nov 2020 16:20:12 +0100 |
On 10/30/20 16:27, Philippe Mathieu-Daudé wrote:
> Fix the following Coverity issue (RESOURCE_LEAK):
>
> CID 1432879: Resource leak
>
> Handle variable fd going out of scope leaks the handle.
>
> Replace a close() call by qemu_close() since the handle is
> opened with qemu_open().
>
> Fixes: bb99f4772f5 ("hw/smbios: support loading OEM strings values from a
> file")
> Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
> ---
> hw/smbios/smbios.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/hw/smbios/smbios.c b/hw/smbios/smbios.c
> index 8b30906e50a..6a3d39793bc 100644
> --- a/hw/smbios/smbios.c
> +++ b/hw/smbios/smbios.c
> @@ -988,16 +988,18 @@ static int save_opt_one(void *opaque,
> if (ret < 0) {
> error_setg(errp, "Unable to read from %s: %s",
> value, strerror(errno));
> + qemu_close(fd);
> return -1;
> }
> if (memchr(buf, '\0', ret)) {
> error_setg(errp, "NUL in OEM strings value in %s", value);
> + qemu_close(fd);
> return -1;
> }
> g_byte_array_append(data, (guint8 *)buf, ret);
> }
>
> - close(fd);
> + qemu_close(fd);
>
> *opt->dest = g_renew(char *, *opt->dest, (*opt->ndest) + 1);
> (*opt->dest)[*opt->ndest] = (char *)g_byte_array_free(data, FALSE);
>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>