summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJonathan Cameron2022-08-08 14:20:50 +0200
committerMichael S. Tsirkin2022-08-17 19:08:11 +0200
commita99fbb003b2558cb4ff426d8144eff7cc1e2d7dc (patch)
tree0dbc1677452e6d724f6447fec75e4e292250a140
parentx86: disable rng seeding via setup_data (diff)
downloadqemu-a99fbb003b2558cb4ff426d8144eff7cc1e2d7dc.tar.gz
qemu-a99fbb003b2558cb4ff426d8144eff7cc1e2d7dc.tar.xz
qemu-a99fbb003b2558cb4ff426d8144eff7cc1e2d7dc.zip
hw/cxl: Fix memory leak in error paths
Use g_autofree to free the CXLFixedWindow structure if an error occurs in configuration before we have added to the list (via g_steal_pointer()) Fix Coverity CID: 1488872 Reported-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com> Message-Id: <20220808122051.14822-2-Jonathan.Cameron@huawei.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
-rw-r--r--hw/cxl/cxl-host.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/hw/cxl/cxl-host.c b/hw/cxl/cxl-host.c
index 483d8eb13f..faa68ef038 100644
--- a/hw/cxl/cxl-host.c
+++ b/hw/cxl/cxl-host.c
@@ -26,7 +26,7 @@ static void cxl_fixed_memory_window_config(CXLState *cxl_state,
CXLFixedMemoryWindowOptions *object,
Error **errp)
{
- CXLFixedWindow *fw = g_malloc0(sizeof(*fw));
+ g_autofree CXLFixedWindow *fw = g_malloc0(sizeof(*fw));
strList *target;
int i;
@@ -64,7 +64,8 @@ static void cxl_fixed_memory_window_config(CXLState *cxl_state,
fw->enc_int_gran = 0;
}
- cxl_state->fixed_windows = g_list_append(cxl_state->fixed_windows, fw);
+ cxl_state->fixed_windows = g_list_append(cxl_state->fixed_windows,
+ g_steal_pointer(&fw));
return;
}