virtio: qmp: fix memory leak
The VirtioInfoList is already allocated by QAPI_LIST_PREPEND and need not be allocated by the caller. Fixes Coverity CID 1508724. Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
parent
5590615276
commit
0bfd14149b
@ -668,7 +668,7 @@ VirtioDeviceFeatures *qmp_decode_features(uint16_t device_id, uint64_t bitmap)
|
||||
VirtioInfoList *qmp_x_query_virtio(Error **errp)
|
||||
{
|
||||
VirtioInfoList *list = NULL;
|
||||
VirtioInfoList *node;
|
||||
VirtioInfo *node;
|
||||
VirtIODevice *vdev;
|
||||
|
||||
QTAILQ_FOREACH(vdev, &virtio_list, next) {
|
||||
@ -682,11 +682,10 @@ VirtioInfoList *qmp_x_query_virtio(Error **errp)
|
||||
if (!strncmp(is_realized->str, "false", 4)) {
|
||||
QTAILQ_REMOVE(&virtio_list, vdev, next);
|
||||
} else {
|
||||
node = g_new0(VirtioInfoList, 1);
|
||||
node->value = g_new(VirtioInfo, 1);
|
||||
node->value->path = g_strdup(dev->canonical_path);
|
||||
node->value->name = g_strdup(vdev->name);
|
||||
QAPI_LIST_PREPEND(list, node->value);
|
||||
node = g_new(VirtioInfo, 1);
|
||||
node->path = g_strdup(dev->canonical_path);
|
||||
node->name = g_strdup(vdev->name);
|
||||
QAPI_LIST_PREPEND(list, node);
|
||||
}
|
||||
g_string_free(is_realized, true);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user