From a9362fa81bc96d7cf2b8730b4f62da829f050946 Mon Sep 17 00:00:00 2001 From: Ondrej Holy Date: Tue, 30 Apr 2019 10:36:34 +0200 Subject: admin: Prevent core dumps when daemon is manually started Use `g_printerr ()` instead of `g_error ()` in order to prevent core dumps when starting the gvfsd-admin daemon manually without pkexec, or with wrong commandline arguments. Fixes: https://gitlab.gnome.org/GNOME/gvfs/issues/395 --- daemon/gvfsbackendadmin.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/daemon/gvfsbackendadmin.c b/daemon/gvfsbackendadmin.c index db76aff9..7b14e7a0 100644 --- a/daemon/gvfsbackendadmin.c +++ b/daemon/gvfsbackendadmin.c @@ -957,7 +957,10 @@ g_vfs_backend_admin_pre_setup (int *argc, pkexec_uid = g_getenv ("PKEXEC_UID"); if (pkexec_uid == NULL) - g_error ("gvfsd-admin must be executed under pkexec"); + { + g_printerr ("gvfsd-admin must be executed under pkexec\n"); + exit (1); + } errno = 0; uid = strtol (pkexec_uid, NULL, 10); @@ -970,7 +973,11 @@ g_vfs_backend_admin_pre_setup (int *argc, g_option_context_parse (context, argc, argv, &error); g_option_context_free (context); if (error != NULL) - g_error ("Can't parse arguments: %s", error->message); + { + g_printerr ("Can't parse arguments: %s", error->message); + g_error_free (error); + exit (1); + } acquire_caps (uid); g_setenv ("DBUS_SESSION_BUS_ADDRESS", session_address, TRUE); -- cgit v1.2.1