-
-
Notifications
You must be signed in to change notification settings - Fork 208
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
main crashes with segfault on startup #1455
Comments
Guess something like this should fix it: diff --git ./src/portal-impl.c ../src/portal-impl.c
index bf3f2b6..2daa7fc 100644
--- ./src/portal-impl.c
+++ ../src/portal-impl.c
@@ -604,9 +604,16 @@ find_portal_implementation_iface (const PortalInterface *iface)
impl = find_portal_implementation_by_name (portal);
+ if (!impl)
+ {
+ g_info ("Requested backend %s does not exist. Skipping...", portal);
+ continue;
+ }
+
if (!portal_impl_supports_iface (impl, iface->dbus_name))
{
- g_info ("Requested backend %s.portal does not support %s. Skipping...", impl->source, iface->dbus_name);
+ g_info ("Requested backend %s.portal does not support %s. Skipping...",
+ impl->source, iface->dbus_name);
continue;
}
@@ -637,7 +644,7 @@ find_default_implementation_iface (const char *interface)
impl = find_portal_implementation_by_name (portal);
- if (portal_impl_supports_iface (impl, interface))
+ if (impl && portal_impl_supports_iface (impl, interface))
return impl;
}
return NULL; |
How can we reproduce this crash? What configuration files are you using? |
I think it simply happens on every startup of xdg-desktop-portal. What more information can I give there?
I don't know. How do I check which files I am using? |
See https://flatpak.github.io/xdg-desktop-portal/docs/portals.conf.html for the list of paths that xdg-desktop-portal searches. |
Also important is which specific portal / backend it was trying to load when it crashed |
$ cat /usr/share/xdg-desktop-portal/gnome-portals.conf
[preferred]
default=gnome;gtk;
org.freedesktop.impl.portal.Secret=gnome-keyring;
$ cat /usr/share/xdg-desktop-portal/portals/gnome-keyring.portal
[portal]
DBusName=org.freedesktop.secrets
Interfaces=org.freedesktop.impl.portal.Secret
UseIn=gnome
$ cat /usr/share/xdg-desktop-portal/portals/gnome.portal
[portal]
DBusName=org.freedesktop.impl.portal.desktop.gnome
Interfaces=org.freedesktop.impl.portal.Access;org.freedesktop.impl.portal.Account;org.freedesktop.impl.portal.AppChooser;org.freedesktop.impl.portal.Background;org.freedesktop.impl.portal.Clipboard;org.freedesktop.impl.portal.DynamicLauncher;org.freedesktop.impl.portal.FileChooser;org.freedesktop.impl.portal.InputCapture;org.freedesktop.impl.portal.Lockdown;org.freedesktop.impl.portal.Notification;org.freedesktop.impl.portal.Print;org.freedesktop.impl.portal.RemoteDesktop;org.freedesktop.impl.portal.ScreenCast;org.freedesktop.impl.portal.Screenshot;org.freedesktop.impl.portal.Settings;org.freedesktop.impl.portal.Wallpaper;
UseIn=gnome
$ cat /usr/share/xdg-desktop-portal/portals/gtk.portal
[portal]
DBusName=org.freedesktop.impl.portal.desktop.gtk
Interfaces=org.freedesktop.impl.portal.FileChooser;org.freedesktop.impl.portal.AppChooser;org.freedesktop.impl.portal.Print;org.freedesktop.impl.portal.Notification;org.freedesktop.impl.portal.Inhibit;org.freedesktop.impl.portal.Access;org.freedesktop.impl.portal.Account;org.freedesktop.impl.portal.Email;org.freedesktop.impl.portal.DynamicLauncher;org.freedesktop.impl.portal.Lockdown;org.freedesktop.impl.portal.Settings;
UseIn=gnome
$ cat /usr/share/xdg-desktop-portal/portals/gnome-keyring.portal
[portal]
DBusName=org.freedesktop.secrets
Interfaces=org.freedesktop.impl.portal.Secret
UseIn=gnome |
What happens if you run |
find_portal_implementation_by_name() is nullable, so it's important to deal with it properly. Patch originally proposed by @swick. Closes flatpak#1455
@sophie-h can you please test #1461 and see if it fixes things for you? FWIW, #1461 may avoid the crash, but I think there is a problem with your setup. You configured xdg-desktop-portal to use the |
Operating System
Debian testing
XDG Desktop Portal version
Git
XDG Desktop Portal version (Other)
No response
Desktop Environment
GNOME
Desktop Environment (Other)
No response
Expected Behavior
No segfault
Current Behavior
Steps to Reproduce
meson setup builddir
meson install -C builddir
Anything else we should know?
No response
The text was updated successfully, but these errors were encountered: