[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH] scsi: fix memory leak
From: |
Stefan Hajnoczi |
Subject: |
Re: [Qemu-devel] [PATCH] scsi: fix memory leak |
Date: |
Tue, 10 Apr 2012 16:39:27 +0100 |
On Fri, Apr 6, 2012 at 2:48 PM, Paolo Bonzini <address@hidden> wrote:
> scsibus_get_dev_path is leaking id if it is not NULL. Fix it.
>
> Reported-by: Laszlo Ersek <address@hidden>
> Signed-off-by: Paolo Bonzini <address@hidden>
> ---
> hw/scsi-bus.c | 7 +++++--
> 1 file changed, 5 insertions(+), 2 deletions(-)
>
> diff --git a/hw/scsi-bus.c b/hw/scsi-bus.c
> index 8e76c5d..216b51f 100644
> --- a/hw/scsi-bus.c
> +++ b/hw/scsi-bus.c
> @@ -1430,15 +1430,18 @@ static char *scsibus_get_dev_path(DeviceState *dev)
> SCSIDevice *d = DO_UPCAST(SCSIDevice, qdev, dev);
> DeviceState *hba = dev->parent_bus->parent;
> char *id = NULL;
> + char *path;
>
> if (hba && hba->parent_bus && hba->parent_bus->info->get_dev_path) {
> id = hba->parent_bus->info->get_dev_path(hba);
> }
> if (id) {
> - return g_strdup_printf("%s/%d:%d:%d", id, d->channel, d->id, d->lun);
> + path = g_strdup_printf("%s/%d:%d:%d", id, d->channel, d->id, d->lun);
> } else {
> - return g_strdup_printf("%d:%d:%d", d->channel, d->id, d->lun);
> + path = g_strdup_printf("%d:%d:%d", d->channel, d->id, d->lun);
> }
> + free(id);
Should be g_free(id).
Stefan