qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] multi-process: Initialize variables declared with g_auto*


From: Jag Raman
Subject: Re: [PATCH] multi-process: Initialize variables declared with g_auto*
Date: Wed, 3 Mar 2021 08:44:30 +0000


> On Mar 3, 2021, at 2:06 AM, Zenghui Yu <yuzenghui@huawei.com> wrote:
> 
> Quote docs/devel/style.rst (section "Automatic memory deallocation"):
> 
> * Variables declared with g_auto* MUST always be initialized,
>  otherwise the cleanup function will use uninitialized stack memory
> 
> Initialize @name properly to get rid of the compilation error:
> 
> ../hw/remote/proxy.c: In function 'pci_proxy_dev_realize':
> /usr/include/glib-2.0/glib/glib-autocleanups.h:28:3: error: 'name' may be 
> used uninitialized in this function [-Werror=maybe-uninitialized]
>   g_free (*pp);
>   ^~~~~~~~~~~~
> ../hw/remote/proxy.c:350:30: note: 'name' was declared here
>             g_autofree char *name;
>                              ^~~~
> 
> Signed-off-by: Zenghui Yu <yuzenghui@huawei.com>
> ---
> hw/remote/memory.c | 3 +--
> hw/remote/proxy.c  | 3 +--
> 2 files changed, 2 insertions(+), 4 deletions(-)
> 
> diff --git a/hw/remote/memory.c b/hw/remote/memory.c
> index 32085b1e05..f5f735c15a 100644
> --- a/hw/remote/memory.c
> +++ b/hw/remote/memory.c
> @@ -43,9 +43,8 @@ void remote_sysmem_reconfig(MPQemuMsg *msg, Error **errp)
>     remote_sysmem_reset();
> 
>     for (region = 0; region < msg->num_fds; region++) {
> -        g_autofree char *name;
> +        g_autofree char *name = g_strdup_printf("remote-mem-%u", suffix++);
>         subregion = g_new(MemoryRegion, 1);
> -        name = g_strdup_printf("remote-mem-%u", suffix++);
>         memory_region_init_ram_from_fd(subregion, NULL,
>                                        name, sysmem_info->sizes[region],
>                                        true, msg->fds[region],
> diff --git a/hw/remote/proxy.c b/hw/remote/proxy.c
> index 4fa4be079d..6dda705fc2 100644
> --- a/hw/remote/proxy.c
> +++ b/hw/remote/proxy.c
> @@ -347,13 +347,12 @@ static void probe_pci_info(PCIDevice *dev, Error **errp)
>                    PCI_BASE_ADDRESS_SPACE_IO : PCI_BASE_ADDRESS_SPACE_MEMORY;
> 
>         if (size) {
> -            g_autofree char *name;
> +            g_autofree char *name = g_strdup_printf("bar-region-%d", i);
>             pdev->region[i].dev = pdev;
>             pdev->region[i].present = true;
>             if (type == PCI_BASE_ADDRESS_SPACE_MEMORY) {
>                 pdev->region[i].memory = true;
>             }
> -            name = g_strdup_printf("bar-region-%d", i);
>             memory_region_init_io(&pdev->region[i].mr, OBJECT(pdev),
>                                   &proxy_mr_ops, &pdev->region[i],
>                                   name, size);
> -- 
> 2.19.1

Reviewed-by: Jagannathan Raman <jag.raman@oracle.com>
> 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]