Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE
polkit.12016
pkexec.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File pkexec.patch of Package polkit.12016
From: Andreas Schwab <schwab@suse.de> Subject: pkexec: allow --version and --help even if not setuid Don't check for setuid invocation until after parsing command line, to allow running uninstalled pkexec with --help or --version. This also helps building packages that want to check for pkexec in an emulated environment that does not support setuid invocation (eg. QEMU linux-user). Index: polkit-0.114/src/programs/pkexec.c =================================================================== --- polkit-0.114.orig/src/programs/pkexec.c 2018-04-03 20:16:17.000000000 +0200 +++ polkit-0.114/src/programs/pkexec.c 2018-04-10 02:48:03.031508016 +0200 @@ -504,27 +504,6 @@ main (int argc, char *argv[]) /* Disable remote file access from GIO. */ setenv ("GIO_USE_VFS", "local", 1); - /* check for correct invocation */ - if (geteuid () != 0) - { - g_printerr ("pkexec must be setuid root\n"); - goto out; - } - - original_user_name = g_strdup (g_get_user_name ()); - if (original_user_name == NULL) - { - g_printerr ("Error getting user name.\n"); - goto out; - } - - if ((original_cwd = g_get_current_dir ()) == NULL) - { - g_printerr ("Error getting cwd: %s\n", - g_strerror (errno)); - goto out; - } - /* First process options and find the command-line to invoke. Avoid using fancy library routines * that depend on environtment variables since we haven't cleared the environment just yet. */ @@ -580,6 +559,27 @@ main (int argc, char *argv[]) goto out; } + /* check for correct invocation */ + if (geteuid () != 0) + { + g_printerr ("pkexec must be setuid root\n"); + goto out; + } + + original_user_name = g_strdup (g_get_user_name ()); + if (original_user_name == NULL) + { + g_printerr ("Error getting user name.\n"); + goto out; + } + + if ((original_cwd = g_get_current_dir ()) == NULL) + { + g_printerr ("Error getting cwd: %s\n", + g_strerror (errno)); + goto out; + } + if (opt_user == NULL) opt_user = g_strdup ("root");
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor