qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCHv3 01/20] scsi, pci, qdev, isa-bus, sysbus: don't


From: Anthony Liguori
Subject: Re: [Qemu-devel] [PATCHv3 01/20] scsi, pci, qdev, isa-bus, sysbus: don't let *_get_fw_dev_path return NULL
Date: Fri, 05 Oct 2012 16:17:38 -0500
User-agent: Notmuch/0.13.2+93~ged93d79 (http://notmuchmail.org) Emacs/23.3.1 (x86_64-pc-linux-gnu)

Jim Meyering <address@hidden> writes:

> From: Jim Meyering <address@hidden>
>
> Use g_strdup rather than strdup, because the sole caller
> (qdev_get_fw_dev_path_helper) assumes it gets non-NULL, and dereferences
> it.  Besides, in that caller, the allocated buffer is already freed with
> g_free, so it's better to allocate with a matching g_strdup.
>
> In one case, (scsi-bus.c) it was trivial, so I replaced an snprintf+
> g_strdup combination with an equivalent g_strdup_printf use.
>
> Signed-off-by: Jim Meyering <address@hidden>

Applied all. Thanks.

Regards,

Anthony Liguori

> ---
>  hw/ide/qdev.c | 2 +-
>  hw/isa-bus.c  | 2 +-
>  hw/pci.c      | 2 +-
>  hw/qdev.c     | 2 +-
>  hw/scsi-bus.c | 8 ++------
>  hw/sysbus.c   | 2 +-
>  6 files changed, 7 insertions(+), 11 deletions(-)
>
> diff --git a/hw/ide/qdev.c b/hw/ide/qdev.c
> index 5ea9b8f..f2e4ea4 100644
> --- a/hw/ide/qdev.c
> +++ b/hw/ide/qdev.c
> @@ -60,7 +60,7 @@ static char *idebus_get_fw_dev_path(DeviceState *dev)
>      snprintf(path, sizeof(path), "address@hidden", qdev_fw_name(dev),
>               ((IDEBus*)dev->parent_bus)->bus_id);
>
> -    return strdup(path);
> +    return g_strdup(path);
>  }
>
>  static int ide_qdev_init(DeviceState *qdev)
> diff --git a/hw/isa-bus.c b/hw/isa-bus.c
> index f9b2373..47c93d3 100644
> --- a/hw/isa-bus.c
> +++ b/hw/isa-bus.c
> @@ -236,7 +236,7 @@ static char *isabus_get_fw_dev_path(DeviceState *dev)
>          snprintf(path + off, sizeof(path) - off, "@%04x", d->ioport_id);
>      }
>
> -    return strdup(path);
> +    return g_strdup(path);
>  }
>
>  MemoryRegion *isa_address_space(ISADevice *dev)
> diff --git a/hw/pci.c b/hw/pci.c
> index f855cf3..de4b448 100644
> --- a/hw/pci.c
> +++ b/hw/pci.c
> @@ -1962,7 +1962,7 @@ static char *pcibus_get_fw_dev_path(DeviceState *dev)
>                     PCI_SLOT(d->devfn));
>      if (PCI_FUNC(d->devfn))
>          snprintf(path + off, sizeof(path) + off, ",%x", PCI_FUNC(d->devfn));
> -    return strdup(path);
> +    return g_strdup(path);
>  }
>
>  static char *pcibus_get_dev_path(DeviceState *dev)
> diff --git a/hw/qdev.c b/hw/qdev.c
> index b5a52ac..3b5ce33 100644
> --- a/hw/qdev.c
> +++ b/hw/qdev.c
> @@ -520,7 +520,7 @@ char* qdev_get_fw_dev_path(DeviceState *dev)
>
>      path[l-1] = '\0';
>
> -    return strdup(path);
> +    return g_strdup(path);
>  }
>
>  char *qdev_get_dev_path(DeviceState *dev)
> diff --git a/hw/scsi-bus.c b/hw/scsi-bus.c
> index 058d3b2..dfb2631 100644
> --- a/hw/scsi-bus.c
> +++ b/hw/scsi-bus.c
> @@ -1723,12 +1723,8 @@ static char *scsibus_get_dev_path(DeviceState *dev)
>  static char *scsibus_get_fw_dev_path(DeviceState *dev)
>  {
>      SCSIDevice *d = SCSI_DEVICE(dev);
> -    char path[100];
> -
> -    snprintf(path, sizeof(path), "address@hidden/address@hidden,%x", 
> d->channel,
> -             qdev_fw_name(dev), d->id, d->lun);
> -
> -    return strdup(path);
> +    return g_strdup_printf("address@hidden/address@hidden,%x", d->channel,
> +                           qdev_fw_name(dev), d->id, d->lun);
>  }
>
>  SCSIDevice *scsi_device_find(SCSIBus *bus, int channel, int id, int lun)
> diff --git a/hw/sysbus.c b/hw/sysbus.c
> index 9d8b1ea..c173840 100644
> --- a/hw/sysbus.c
> +++ b/hw/sysbus.c
> @@ -211,7 +211,7 @@ static char *sysbus_get_fw_dev_path(DeviceState *dev)
>          snprintf(path + off, sizeof(path) - off, "@i%04x", s->pio[0]);
>      }
>
> -    return strdup(path);
> +    return g_strdup(path);
>  }
>
>  void sysbus_add_memory(SysBusDevice *dev, target_phys_addr_t addr,
> -- 
> 1.8.0.rc0.18.gf84667d



reply via email to

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