From 76ef3efdff04b7dd45576db4703631b05f861b66 Mon Sep 17 00:00:00 2001 From: Thomas Haller Date: Thu, 6 May 2021 19:13:43 +0200 Subject: [PATCH] systemd/tests: avoid using g_free() with buffers allocated with malloc() in _test_unbase64mem_mem() Coverity says: Error: ALLOC_FREE_MISMATCH (CWE-762): NetworkManager-1.31.3/src/core/tests/test-systemd.c:261: alloc: Allocation of memory which must be freed using "free". NetworkManager-1.31.3/src/core/tests/test-systemd.c:274: free: Calling "_nm_auto_g_free" frees "exp2_arr" using "g_free" but it should have been freed using "free". # 272| g_assert_cmpmem(expected_arr, expected_len, exp3_arr, exp3_len); # 273| } # 274|-> } # 275| # 276| #define _test_unbase64mem(base64, expected_str) \ Error: ALLOC_FREE_MISMATCH (CWE-762): NetworkManager-1.31.3/src/core/tests/test-systemd.c:270: alloc: Allocation of memory which must be freed using "free". NetworkManager-1.31.3/src/core/tests/test-systemd.c:274: free: Calling "_nm_auto_g_free" frees "exp3_arr" using "g_free" but it should have been freed using "free". # 272| g_assert_cmpmem(expected_arr, expected_len, exp3_arr, exp3_len); # 273| } # 274|-> } # 275| # 276| #define _test_unbase64mem(base64, expected_str) \ Fixes: 0298d540782b ('systemd: expose unbase64mem() as nm_sd_utils_unbase64mem()') (cherry picked from commit 44abe6d6612898796e7069abd3bc0e1ce7f9b8b6) (cherry picked from commit d2d343289d223c756fc14cb2c6dacce8e71c411f) --- src/tests/test-systemd.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/tests/test-systemd.c b/src/tests/test-systemd.c index 54cca5092e..5e4b361202 100644 --- a/src/tests/test-systemd.c +++ b/src/tests/test-systemd.c @@ -247,11 +247,11 @@ _test_unbase64mem_mem(const char *base64, const guint8 *expected_arr, gsize expe { gs_free char *expected_base64 = NULL; int r; - gs_free guint8 *exp2_arr = NULL; - gs_free guint8 *exp3_arr = NULL; - gsize exp2_len; - gsize exp3_len; - gsize i; + nm_auto_free guint8 *exp2_arr = NULL; + nm_auto_free guint8 *exp3_arr = NULL; + gsize exp2_len; + gsize exp3_len; + gsize i; expected_base64 = g_base64_encode(expected_arr, expected_len);