mirror of https://github.com/xemu-project/xemu.git
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 *qmp_x_query_virtio(Error **errp)
|
||||||
{
|
{
|
||||||
VirtioInfoList *list = NULL;
|
VirtioInfoList *list = NULL;
|
||||||
VirtioInfoList *node;
|
VirtioInfo *node;
|
||||||
VirtIODevice *vdev;
|
VirtIODevice *vdev;
|
||||||
|
|
||||||
QTAILQ_FOREACH(vdev, &virtio_list, next) {
|
QTAILQ_FOREACH(vdev, &virtio_list, next) {
|
||||||
|
@ -682,11 +682,10 @@ VirtioInfoList *qmp_x_query_virtio(Error **errp)
|
||||||
if (!strncmp(is_realized->str, "false", 4)) {
|
if (!strncmp(is_realized->str, "false", 4)) {
|
||||||
QTAILQ_REMOVE(&virtio_list, vdev, next);
|
QTAILQ_REMOVE(&virtio_list, vdev, next);
|
||||||
} else {
|
} else {
|
||||||
node = g_new0(VirtioInfoList, 1);
|
node = g_new(VirtioInfo, 1);
|
||||||
node->value = g_new(VirtioInfo, 1);
|
node->path = g_strdup(dev->canonical_path);
|
||||||
node->value->path = g_strdup(dev->canonical_path);
|
node->name = g_strdup(vdev->name);
|
||||||
node->value->name = g_strdup(vdev->name);
|
QAPI_LIST_PREPEND(list, node);
|
||||||
QAPI_LIST_PREPEND(list, node->value);
|
|
||||||
}
|
}
|
||||||
g_string_free(is_realized, true);
|
g_string_free(is_realized, true);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue