[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Stable-8.1.2 11/45] hw/cxl: Fix CFMW config memory leak
From: |
Michael Tokarev |
Subject: |
[Stable-8.1.2 11/45] hw/cxl: Fix CFMW config memory leak |
Date: |
Wed, 4 Oct 2023 11:01:32 +0300 |
From: Li Zhijian <lizhijian@cn.fujitsu.com>
Allocate targets and targets[n] resources when all sanity checks are
passed to avoid memory leaks.
Cc: qemu-stable@nongnu.org
Suggested-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Signed-off-by: Li Zhijian <lizhijian@cn.fujitsu.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Reviewed-by: Fan Ni <fan.ni@samsung.com>
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
(cherry picked from commit 7b165fa164022b756c2b001d0a1525f98199d3ac)
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
diff --git a/hw/cxl/cxl-host.c b/hw/cxl/cxl-host.c
index 034c7805b3..f0920da956 100644
--- a/hw/cxl/cxl-host.c
+++ b/hw/cxl/cxl-host.c
@@ -39,12 +39,6 @@ static void cxl_fixed_memory_window_config(CXLState
*cxl_state,
return;
}
- fw->targets = g_malloc0_n(fw->num_targets, sizeof(*fw->targets));
- for (i = 0, target = object->targets; target; i++, target = target->next) {
- /* This link cannot be resolved yet, so stash the name for now */
- fw->targets[i] = g_strdup(target->value);
- }
-
if (object->size % (256 * MiB)) {
error_setg(errp,
"Size of a CXL fixed memory window must be a multiple of
256MiB");
@@ -64,6 +58,12 @@ static void cxl_fixed_memory_window_config(CXLState
*cxl_state,
fw->enc_int_gran = 0;
}
+ fw->targets = g_malloc0_n(fw->num_targets, sizeof(*fw->targets));
+ for (i = 0, target = object->targets; target; i++, target = target->next) {
+ /* This link cannot be resolved yet, so stash the name for now */
+ fw->targets[i] = g_strdup(target->value);
+ }
+
cxl_state->fixed_windows = g_list_append(cxl_state->fixed_windows,
g_steal_pointer(&fw));
--
2.39.2
- [Stable-8.1.2 00/45] Patch Round-up for stable 8.1.2, freeze on 2023-10-14, Michael Tokarev, 2023/10/04
- [Stable-8.1.2 01/45] hw/ppc: Introduce functions for conversion between timebase and nanoseconds, Michael Tokarev, 2023/10/04
- [Stable-8.1.2 03/45] hw/ppc: Round up the decrementer interval when converting to ns, Michael Tokarev, 2023/10/04
- [Stable-8.1.2 02/45] host-utils: Add muldiv64_round_up, Michael Tokarev, 2023/10/04
- [Stable-8.1.2 08/45] hw/ppc: Read time only once to perform decrementer write, Michael Tokarev, 2023/10/04
- [Stable-8.1.2 11/45] hw/cxl: Fix CFMW config memory leak,
Michael Tokarev <=
- [Stable-8.1.2 04/45] hw/ppc: Avoid decrementer rounding errors, Michael Tokarev, 2023/10/04
- [Stable-8.1.2 13/45] file-posix: Clear bs->bl.zoned on error, Michael Tokarev, 2023/10/04
- [Stable-8.1.2 16/45] file-posix: Simplify raw_co_prw's 'out' zone code, Michael Tokarev, 2023/10/04
- [Stable-8.1.2 07/45] hw/ppc: Reset timebase facilities on machine reset, Michael Tokarev, 2023/10/04
- [Stable-8.1.2 10/45] linux-user/hppa: lock both words of function descriptor, Michael Tokarev, 2023/10/04
- [Stable-8.1.2 15/45] file-posix: Fix zone update in I/O error path, Michael Tokarev, 2023/10/04
- [Stable-8.1.2 14/45] file-posix: Check bs->bl.zoned for zone info, Michael Tokarev, 2023/10/04
- [Stable-8.1.2 12/45] hw/cxl: Fix out of bound array access, Michael Tokarev, 2023/10/04
- [Stable-8.1.2 09/45] linux-user/hppa: clear the PSW 'N' bit when delivering signals, Michael Tokarev, 2023/10/04
- [Stable-8.1.2 05/45] target/ppc: Sign-extend large decrementer to 64-bits, Michael Tokarev, 2023/10/04