mirror of
				https://gitlab.gnome.org/GNOME/glib.git
				synced 2025-11-04 10:08:56 +01:00 
			
		
		
		
	Merge branch 'pollable-test-dlopen-leak' into 'master'
tests: Fix leak of dlopened module in pollable test See merge request GNOME/glib!1936
This commit is contained in:
		@@ -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
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user