[PATCH] tests: fix test-cutils leaks

marcandre.lureau@redhat.com posted 1 patch 1 year, 10 months ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20220621083420.66365-1-marcandre.lureau@redhat.com
tests/unit/test-cutils.c | 42 ++++++++++++++++++++++++++++++++--------
1 file changed, 34 insertions(+), 8 deletions(-)
[PATCH] tests: fix test-cutils leaks
Posted by marcandre.lureau@redhat.com 1 year, 10 months ago
From: Marc-André Lureau <marcandre.lureau@redhat.com>

Reported by ASAN.

Fixes commit cfb34489 ("cutils: add functions for IEC and SI prefixes").

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
---
 tests/unit/test-cutils.c | 42 ++++++++++++++++++++++++++++++++--------
 1 file changed, 34 insertions(+), 8 deletions(-)

diff --git a/tests/unit/test-cutils.c b/tests/unit/test-cutils.c
index f5b780f01242..86caddcf6498 100644
--- a/tests/unit/test-cutils.c
+++ b/tests/unit/test-cutils.c
@@ -2452,18 +2452,44 @@ static void test_qemu_strtosz_metric(void)
 
 static void test_freq_to_str(void)
 {
-    g_assert_cmpstr(freq_to_str(999), ==, "999 Hz");
-    g_assert_cmpstr(freq_to_str(1000), ==, "1 KHz");
-    g_assert_cmpstr(freq_to_str(1010), ==, "1.01 KHz");
+    char *str;
+
+    str = freq_to_str(999);
+    g_assert_cmpstr(str, ==, "999 Hz");
+    g_free(str);
+
+    str = freq_to_str(1000);
+    g_assert_cmpstr(str, ==, "1 KHz");
+    g_free(str);
+
+    str = freq_to_str(1010);
+    g_assert_cmpstr(str, ==, "1.01 KHz");
+    g_free(str);
 }
 
 static void test_size_to_str(void)
 {
-    g_assert_cmpstr(size_to_str(0), ==, "0 B");
-    g_assert_cmpstr(size_to_str(1), ==, "1 B");
-    g_assert_cmpstr(size_to_str(1016), ==, "0.992 KiB");
-    g_assert_cmpstr(size_to_str(1024), ==, "1 KiB");
-    g_assert_cmpstr(size_to_str(512ull << 20), ==, "512 MiB");
+    char *str;
+
+    str = size_to_str(0);
+    g_assert_cmpstr(str, ==, "0 B");
+    g_free(str);
+
+    str = size_to_str(1);
+    g_assert_cmpstr(str, ==, "1 B");
+    g_free(str);
+
+    str = size_to_str(1016);
+    g_assert_cmpstr(str, ==, "0.992 KiB");
+    g_free(str);
+
+    str = size_to_str(1024);
+    g_assert_cmpstr(str, ==, "1 KiB");
+    g_free(str);
+
+    str = size_to_str(512ull << 20);
+    g_assert_cmpstr(str, ==, "512 MiB");
+    g_free(str);
 }
 
 static void test_iec_binary_prefix(void)
-- 
2.37.0.rc0


Re: [PATCH] tests: fix test-cutils leaks
Posted by Peter Maydell 1 year, 10 months ago
On Tue, 21 Jun 2022 at 09:36, <marcandre.lureau@redhat.com> wrote:
>
> From: Marc-André Lureau <marcandre.lureau@redhat.com>
>
> Reported by ASAN.
>
> Fixes commit cfb34489 ("cutils: add functions for IEC and SI prefixes").
>
> Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>

g_autofree would be neater, but this works, so:
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>

thanks
-- PMM
Re: [PATCH] tests: fix test-cutils leaks
Posted by Marc-André Lureau 1 year, 10 months ago
Hi

On Tue, Jun 21, 2022 at 3:46 PM Peter Maydell <peter.maydell@linaro.org>
wrote:

> On Tue, 21 Jun 2022 at 09:36, <marcandre.lureau@redhat.com> wrote:
> >
> > From: Marc-André Lureau <marcandre.lureau@redhat.com>
> >
> > Reported by ASAN.
> >
> > Fixes commit cfb34489 ("cutils: add functions for IEC and SI prefixes").
> >
> > Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
>
> g_autofree would be neater, but this works, so:
> Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
>
>
sadly, not really, since you have to call g_free() before new
assignments... (yes it makes me sad too :)


-- 
Marc-André Lureau
Re: [PATCH] tests: fix test-cutils leaks
Posted by Peter Maydell 1 year, 10 months ago
On Tue, 21 Jun 2022 at 12:50, Marc-André Lureau
<marcandre.lureau@gmail.com> wrote:
>
> Hi
>
> On Tue, Jun 21, 2022 at 3:46 PM Peter Maydell <peter.maydell@linaro.org> wrote:
>>
>> On Tue, 21 Jun 2022 at 09:36, <marcandre.lureau@redhat.com> wrote:
>> >
>> > From: Marc-André Lureau <marcandre.lureau@redhat.com>
>> >
>> > Reported by ASAN.
>> >
>> > Fixes commit cfb34489 ("cutils: add functions for IEC and SI prefixes").
>> >
>> > Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
>>
>> g_autofree would be neater, but this works, so:
>> Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
>>
>
> sadly, not really, since you have to call g_free() before new assignments... (yes it makes me sad too :)

You could split it up into multiple variables:

 g_autofree char *s1 = freq_to_str(999);
 g_autofree char *s2 = freq_to_str(1000);
 g_autofree char *s3 = freq_to_str(1010);

 g_assert_cmpstr(s1, ==, "999 Hz");
 g_assert_cmpstr(s2, ==, "1 KHz");
 g_assert_cmpstr(s3, ==, "1.01 KHz");

-- PMM