Re: [PATCH] boot-order-test: fix memleaks in boot-order-test

2020-02-02 Thread Thomas Huth
On 03/02/2020 03.59, pannengy...@huawei.com wrote:
> From: Pan Nengyuan 
> 
> It's not a big deal, but 'check qtest-ppc/ppc64' runs fail if sanitizers is 
> enabled.
> The memory leak stack is as follow:
> 
> Direct leak of 128 byte(s) in 4 object(s) allocated from:
> #0 0x7f11756f5970 in __interceptor_calloc (/lib64/libasan.so.5+0xef970)
> #1 0x7f1174f2549d in g_malloc0 (/lib64/libglib-2.0.so.0+0x5249d)
> #2 0x556af05aa7da in mm_fw_cfg_init 
> /mnt/sdb/qemu/tests/libqos/fw_cfg.c:119
> #3 0x556af059f4f5 in read_boot_order_pmac 
> /mnt/sdb/qemu/tests/boot-order-test.c:137
> #4 0x556af059efe2 in test_a_boot_order 
> /mnt/sdb/qemu/tests/boot-order-test.c:47
> #5 0x556af059f2c0 in test_boot_orders 
> /mnt/sdb/qemu/tests/boot-order-test.c:59
> #6 0x556af059f52d in test_pmac_oldworld_boot_order 
> /mnt/sdb/qemu/tests/boot-order-test.c:152
> #7 0x7f1174f46cb9  (/lib64/libglib-2.0.so.0+0x73cb9)
> #8 0x7f1174f46b73  (/lib64/libglib-2.0.so.0+0x73b73)
> #9 0x7f1174f46b73  (/lib64/libglib-2.0.so.0+0x73b73)
> #10 0x7f1174f46f71 in g_test_run_suite (/lib64/libglib-2.0.so.0+0x73f71)
> #11 0x7f1174f46f94 in g_test_run (/lib64/libglib-2.0.so.0+0x73f94)
> 
> Reported-by: Euler Robot 
> Signed-off-by: Pan Nengyuan 
> ---
>  tests/qtest/boot-order-test.c | 6 +++---
>  tests/qtest/libqos/fw_cfg.h   | 2 ++
>  2 files changed, 5 insertions(+), 3 deletions(-)

Thanks, queued to my qtest-next branch:

 https://gitlab.com/huth/qemu/commits/qtest-next

Reviewed-by: Thomas Huth 




[PATCH] boot-order-test: fix memleaks in boot-order-test

2020-02-02 Thread pannengyuan
From: Pan Nengyuan 

It's not a big deal, but 'check qtest-ppc/ppc64' runs fail if sanitizers is 
enabled.
The memory leak stack is as follow:

Direct leak of 128 byte(s) in 4 object(s) allocated from:
#0 0x7f11756f5970 in __interceptor_calloc (/lib64/libasan.so.5+0xef970)
#1 0x7f1174f2549d in g_malloc0 (/lib64/libglib-2.0.so.0+0x5249d)
#2 0x556af05aa7da in mm_fw_cfg_init /mnt/sdb/qemu/tests/libqos/fw_cfg.c:119
#3 0x556af059f4f5 in read_boot_order_pmac 
/mnt/sdb/qemu/tests/boot-order-test.c:137
#4 0x556af059efe2 in test_a_boot_order 
/mnt/sdb/qemu/tests/boot-order-test.c:47
#5 0x556af059f2c0 in test_boot_orders 
/mnt/sdb/qemu/tests/boot-order-test.c:59
#6 0x556af059f52d in test_pmac_oldworld_boot_order 
/mnt/sdb/qemu/tests/boot-order-test.c:152
#7 0x7f1174f46cb9  (/lib64/libglib-2.0.so.0+0x73cb9)
#8 0x7f1174f46b73  (/lib64/libglib-2.0.so.0+0x73b73)
#9 0x7f1174f46b73  (/lib64/libglib-2.0.so.0+0x73b73)
#10 0x7f1174f46f71 in g_test_run_suite (/lib64/libglib-2.0.so.0+0x73f71)
#11 0x7f1174f46f94 in g_test_run (/lib64/libglib-2.0.so.0+0x73f94)

Reported-by: Euler Robot 
Signed-off-by: Pan Nengyuan 
---
 tests/qtest/boot-order-test.c | 6 +++---
 tests/qtest/libqos/fw_cfg.h   | 2 ++
 2 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/tests/qtest/boot-order-test.c b/tests/qtest/boot-order-test.c
index a725bce729..4241304ff5 100644
--- a/tests/qtest/boot-order-test.c
+++ b/tests/qtest/boot-order-test.c
@@ -134,7 +134,7 @@ static void test_prep_boot_order(void)
 
 static uint64_t read_boot_order_pmac(QTestState *qts)
 {
-QFWCFG *fw_cfg = mm_fw_cfg_init(qts, 0xf510);
+g_autoptr(QFWCFG) fw_cfg = mm_fw_cfg_init(qts, 0xf510);
 
 return qfw_cfg_get_u16(fw_cfg, FW_CFG_BOOT_DEVICE);
 }
@@ -159,7 +159,7 @@ static void test_pmac_newworld_boot_order(void)
 
 static uint64_t read_boot_order_sun4m(QTestState *qts)
 {
-QFWCFG *fw_cfg = mm_fw_cfg_init(qts, 0xd0510ULL);
+g_autoptr(QFWCFG) fw_cfg = mm_fw_cfg_init(qts, 0xd0510ULL);
 
 return qfw_cfg_get_u16(fw_cfg, FW_CFG_BOOT_DEVICE);
 }
@@ -171,7 +171,7 @@ static void test_sun4m_boot_order(void)
 
 static uint64_t read_boot_order_sun4u(QTestState *qts)
 {
-QFWCFG *fw_cfg = io_fw_cfg_init(qts, 0x510);
+g_autoptr(QFWCFG) fw_cfg = io_fw_cfg_init(qts, 0x510);
 
 return qfw_cfg_get_u16(fw_cfg, FW_CFG_BOOT_DEVICE);
 }
diff --git a/tests/qtest/libqos/fw_cfg.h b/tests/qtest/libqos/fw_cfg.h
index 13325cc4ff..c6a7cf8cf0 100644
--- a/tests/qtest/libqos/fw_cfg.h
+++ b/tests/qtest/libqos/fw_cfg.h
@@ -49,4 +49,6 @@ static inline void pc_fw_cfg_uninit(QFWCFG *fw_cfg)
 io_fw_cfg_uninit(fw_cfg);
 }
 
+G_DEFINE_AUTOPTR_CLEANUP_FUNC(QFWCFG, mm_fw_cfg_uninit)
+
 #endif
-- 
2.21.0.windows.1