tests: Fix leak of dlopened module in pollable test

Coverity CID: #1446243

Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
This commit is contained in:
Philip Withnall 2021-02-09 11:06:53 +00:00
parent dc1f133c88
commit 57a5ed3d08

View File

@ -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