summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatt Turner <mattst88@gmail.com>2022-05-03 12:54:37 +0000
committerJan Rybar <jrybar@redhat.com>2022-05-03 12:54:37 +0000
commit7d4b52c4d71c46049d87a0775de695ea914f3f1b (patch)
tree34af5cb05106459e6691564e6d32d7cfba4cf222
parent22ff3e52c314ea5450d9075dec44e81f923a8588 (diff)
downloadpolkit-7d4b52c4d71c46049d87a0775de695ea914f3f1b.tar.gz
pkexec: Allow --version and --help even if not setuid root
-rw-r--r--src/programs/pkexec.c42
1 files changed, 21 insertions, 21 deletions
diff --git a/src/programs/pkexec.c b/src/programs/pkexec.c
index a67a1f7..e5f4c2e 100644
--- a/src/programs/pkexec.c
+++ b/src/programs/pkexec.c
@@ -514,27 +514,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.
*/
@@ -595,6 +574,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");