diff options
author | Jonathan Cameron <Jonathan.Cameron@huawei.com> | 2022-08-08 13:20:50 +0100 |
---|---|---|
committer | Michael S. Tsirkin <mst@redhat.com> | 2022-08-17 13:08:11 -0400 |
commit | a99fbb003b2558cb4ff426d8144eff7cc1e2d7dc (patch) | |
tree | 0dbc1677452e6d724f6447fec75e4e292250a140 /hw/cxl | |
parent | 3824e25db1a84fadc50b88dfbe27047aa2f7f85d (diff) | |
download | qemu-a99fbb003b2558cb4ff426d8144eff7cc1e2d7dc.zip qemu-a99fbb003b2558cb4ff426d8144eff7cc1e2d7dc.tar.gz qemu-a99fbb003b2558cb4ff426d8144eff7cc1e2d7dc.tar.bz2 |
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>
Diffstat (limited to 'hw/cxl')
-rw-r--r-- | hw/cxl/cxl-host.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/hw/cxl/cxl-host.c b/hw/cxl/cxl-host.c index 483d8eb..faa68ef 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; } |