summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorArseney300 <Arseney300@gmail.com>2026-09-01 02:03:58 +0700
committerArseney300 <Arseney300@gmail.com>2026-09-01 02:03:58 +0700
commitfba737c83f636d66a184e4773da304d6710de004 (patch)
tree629a41730130df35c6537df9151ef9a450f99c64 /src
parent8aad3eda343f0818bc014516cf695668d7e295c3 (diff)
application: Disable all portals instead of just FileChooserfeature/allow_root
gtk_disable_portal_interfaces() (the non-NULL implemented_interfaces path in gxdp_init_gtk) crashes inside the subsequent gtk_init_check() on GTK 4.22.3 with a NULL-pointer read in g_str_hash(), reproduced in isolation with a standalone gtk_disable_portal_interfaces() + gtk_init_check() program. gtk_disable_portals() (triggered by passing NULL here) does not hit this path. Disable all portals as a workaround until the upstream GTK bug is fixed.
Diffstat (limited to 'src')
-rw-r--r--src/nautilus-application.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/nautilus-application.c b/src/nautilus-application.c
index b2e8156df..cf340dedf 100644
--- a/src/nautilus-application.c
+++ b/src/nautilus-application.c
@@ -1051,8 +1051,12 @@ nautilus_application_startup (GApplication *app)
* it during the chain-up. */
g_autoptr (GError) error = NULL;
+ /* gtk_disable_portal_interfaces() (used when passing a non-NULL interface
+ * list here) crashes inside gtk_init_check() on GTK 4.22.3 due to an
+ * upstream GTK bug; gtk_disable_portals() (the NULL/"disable all" path)
+ * does not. Disable all portals until that GTK bug is fixed. */
gxdp_init_gtk (GXDP_SERVICE_CLIENT_TYPE_FILE_CHOOSER,
- (const char *[]) { "org.freedesktop.portal.FileChooser", NULL },
+ NULL,
&error);
/* Remove environment variable that disables libadwaita portal use until it
* is fixed in libgxdp */