From 57a5ed3d086d94e27a76a3aa8e7736507d82fc68 Mon Sep 17 00:00:00 2001 From: Philip Withnall Date: Tue, 9 Feb 2021 11:06:53 +0000 Subject: [PATCH] tests: Fix leak of dlopened module in pollable test Coverity CID: #1446243 Signed-off-by: Philip Withnall --- gio/tests/pollable.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/gio/tests/pollable.c b/gio/tests/pollable.c index 9a2a3cc8c..01049788b 100644 --- a/gio/tests/pollable.c +++ b/gio/tests/pollable.c @@ -187,25 +187,28 @@ test_pollable_unix_pty (void) { int (*openpty_impl) (int *, int *, char *, void *, void *); int a, b, status; +#ifdef __linux__ + void *handle; +#endif g_test_summary ("Test that PTYs are considered pollable"); #ifdef __linux__ - dlopen ("libutil.so", RTLD_GLOBAL | RTLD_LAZY); + handle = dlopen ("libutil.so", RTLD_GLOBAL | RTLD_LAZY); #endif openpty_impl = dlsym (RTLD_DEFAULT, "openpty"); if (openpty_impl == NULL) { g_test_skip ("System does not support openpty()"); - return; + goto close_libutil; } status = openpty_impl (&a, &b, NULL, NULL, NULL); if (status == -1) { g_test_skip ("Unable to open PTY"); - return; + goto close_libutil; } in = G_POLLABLE_INPUT_STREAM (g_unix_input_stream_new (a, TRUE)); @@ -218,6 +221,11 @@ test_pollable_unix_pty (void) close (a); close (b); + +close_libutil: +#ifdef __linux__ + dlclose (handle); +#endif } static void