From: Paolo Bonzini Date: Fri, 6 Apr 2012 12:12:42 +0000 (+0200) Subject: scsi: fix memory leak X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=b7c8c35f0afb62efcacd18a64067fe164e3206b6;p=qemu.git scsi: fix memory leak scsibus_get_dev_path is leaking id if it is not NULL. Fix it. Reported-by: Laszlo Ersek Signed-off-by: Paolo Bonzini --- diff --git a/hw/scsi-bus.c b/hw/scsi-bus.c index 8e76c5d32c..d847396c53 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); } + g_free(id); + return path; } static char *scsibus_get_fw_dev_path(DeviceState *dev)