diff --git a/subprojects/libglnx/tests/libglnx-testlib.c b/subprojects/libglnx/tests/libglnx-testlib.c
index 5687d80706989cefdc6786fd05253234f3017a72..869d144d89dc071bbfecca396d1586d998f9b449 100644
--- a/subprojects/libglnx/tests/libglnx-testlib.c
+++ b/subprojects/libglnx/tests/libglnx-testlib.c
@@ -23,6 +23,8 @@
 
 #include <errno.h>
 
+#include <glib/gstdio.h>
+
 #include "libglnx.h"
 
 struct _GLnxTestAutoTempDir
@@ -63,4 +65,10 @@ _glnx_test_auto_temp_dir_leave (_GLnxTestAutoTempDir *dir)
 
   glnx_tmpdir_delete (&dir->temp_dir, NULL, &error);
   g_assert_no_error (error);
+
+  g_close (dir->old_cwd_fd, &error);
+  g_assert_no_error (error);
+
+  g_free (dir->old_cwd);
+  g_free (dir);
 }