From: Jiri Denemark Date: Wed, 2 Nov 2022 14:52:31 +0000 (+0100) Subject: qemu: Avoid memory leak in qemuMonitorJSONExtractQueryStatsSchema X-Git-Tag: v8.10.0-rc1~194 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a607baf65a66491d5bcbca1e3fa4e672a9ec8611;p=thirdparty%2Flibvirt.git qemu: Avoid memory leak in qemuMonitorJSONExtractQueryStatsSchema In a rare case when virHashAddEntry fails we would just leak the structure we wanted to add to the hash table. Fixes: e89acdbc3bbada2f3c1a591278bc975ddee2d5a9 Signed-off-by: Jiri Denemark Reviewed-by: Ján Tomko --- diff --git a/src/qemu/qemu_monitor_json.c b/src/qemu/qemu_monitor_json.c index 2bd159bc98..8a3421a6fc 100644 --- a/src/qemu/qemu_monitor_json.c +++ b/src/qemu/qemu_monitor_json.c @@ -8596,7 +8596,7 @@ qemuMonitorJSONExtractQueryStatsSchema(virJSONValue *json) virJSONValue *stat = virJSONValueArrayGet(stats, j); const char *name = NULL; const char *tmp = NULL; - qemuMonitorQueryStatsSchemaData *data = NULL; + g_autofree qemuMonitorQueryStatsSchemaData *data = NULL; int type = -1; int unit = -1; @@ -8632,7 +8632,9 @@ qemuMonitorJSONExtractQueryStatsSchema(virJSONValue *json) virJSONValueObjectGetNumberUint(stat, "bucket-size", &data->bucket_size) < 0) data->bucket_size = 0; - virHashAddEntry(schema, name, data); + if (virHashAddEntry(schema, name, data) < 0) + return NULL; + data = NULL; } }