[glib: 2/10] tests: Fix a leak in environment.c with undefined behaviour tests on
- From: Philip Withnall <pwithnall src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [glib: 2/10] tests: Fix a leak in environment.c with undefined behaviour tests on
- Date: Sun, 20 Feb 2022 12:09:02 +0000 (UTC)
commit 12a4fcdbed1254293dcea166ad45bb9d28162dd8
Author: Philip Withnall <pwithnall endlessos org>
Date: Fri Feb 18 02:01:12 2022 +0000
tests: Fix a leak in environment.c with undefined behaviour tests on
`g_environ_setenv()` and `g_environ_unsetenv()` were correctly returning
`NULL` when their preconditions failed (as the test is supposed to be
exercising). That overwrote the value of `env` without freeing it,
resulting in a leak.
Signed-off-by: Philip Withnall <pwithnall endlessos org>
glib/tests/environment.c | 14 ++++++++++----
1 file changed, 10 insertions(+), 4 deletions(-)
---
diff --git a/glib/tests/environment.c b/glib/tests/environment.c
index f31bf1606..94135507f 100644
--- a/glib/tests/environment.c
+++ b/glib/tests/environment.c
@@ -180,25 +180,31 @@ test_environ_array (void)
if (g_test_undefined ())
{
+ gchar **undefined_env;
+
g_test_expect_message (G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL,
"*assertion* != NULL*");
- env = g_environ_setenv (env, NULL, "bar", TRUE);
+ undefined_env = g_environ_setenv (env, NULL, "bar", TRUE);
g_test_assert_expected_messages ();
+ g_strfreev (undefined_env);
g_test_expect_message (G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL,
"*assertion* == NULL*");
- env = g_environ_setenv (env, "foo=fuz", "bar", TRUE);
+ undefined_env = g_environ_setenv (env, "foo=fuz", "bar", TRUE);
g_test_assert_expected_messages ();
+ g_strfreev (undefined_env);
g_test_expect_message (G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL,
"*assertion* != NULL*");
- env = g_environ_setenv (env, "foo", NULL, TRUE);
+ undefined_env = g_environ_setenv (env, "foo", NULL, TRUE);
g_test_assert_expected_messages ();
+ g_strfreev (undefined_env);
g_test_expect_message (G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL,
"*assertion* != NULL*");
- env = g_environ_unsetenv (env, NULL);
+ undefined_env = g_environ_unsetenv (env, NULL);
g_test_assert_expected_messages ();
+ g_strfreev (undefined_env);
}
env = g_environ_setenv (env, "foo", "bar", TRUE);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]