Jim Meyering <[email protected]> writes:
> From: Jim Meyering <[email protected]>
>
> 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 <[email protected]>
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), "%s@%d", 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), "channel@%x/%s@%x,%x", d->channel,
> - qdev_fw_name(dev), d->id, d->lun);
> -
> - return strdup(path);
> + return g_strdup_printf("channel@%x/%s@%x,%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