From 8f8e3a43d749a35a231a29d80c2bcb3d70c1d361 Mon Sep 17 00:00:00 2001
From: Colin Kinloch <colin.kinloch@collabora.com>
Date: Sun, 16 Nov 2025 15:56:17 +0000
Subject: [PATCH 1/2] glocalfile: Complain if `faccessat` sets an unusual error

From 32f246561ed72152295c1623670665f55bd17b2b Mon Sep 17 00:00:00 2001
From: Colin Kinloch <colin.kinloch@collabora.com>
Date: Sun, 16 Nov 2025 16:46:14 +0000
Subject: [PATCH 2/2] glocalfile: Pass `AT_FDCWD` to `faccessat`

Index: gio/glocalfile.c
--- gio/glocalfile.c.orig
+++ gio/glocalfile.c
@@ -1280,7 +1280,19 @@ g_local_file_query_exists (GFile        *file,
 {
   GLocalFile *local = G_LOCAL_FILE (file);
 
-  return faccessat (0, local->filename, F_OK, AT_EACCESS | AT_SYMLINK_NOFOLLOW) == 0;
+  if (faccessat (AT_FDCWD, local->filename, F_OK, AT_EACCESS | AT_SYMLINK_NOFOLLOW) == 0)
+    return TRUE;
+
+  if G_UNLIKELY (errno == EBADF)
+    {
+      g_critical ("g_local_file_query_exists: faccessat didn't accept supplied dirfd");
+    }
+  else if G_UNLIKELY (errno == EINVAL)
+    {
+      g_critical ("g_local_file_query_exists: faccessat doesn't support supplied flags");
+    }
+
+  return FALSE;
 }
 #endif
 
