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>
This commit is contained in:
parent
3824e25db1
commit
a99fbb003b
|
@ -26,7 +26,7 @@ static void cxl_fixed_memory_window_config(CXLState *cxl_state,
|
||||||
CXLFixedMemoryWindowOptions *object,
|
CXLFixedMemoryWindowOptions *object,
|
||||||
Error **errp)
|
Error **errp)
|
||||||
{
|
{
|
||||||
CXLFixedWindow *fw = g_malloc0(sizeof(*fw));
|
g_autofree CXLFixedWindow *fw = g_malloc0(sizeof(*fw));
|
||||||
strList *target;
|
strList *target;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
|
@ -64,7 +64,8 @@ static void cxl_fixed_memory_window_config(CXLState *cxl_state,
|
||||||
fw->enc_int_gran = 0;
|
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;
|
return;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue