PolicyKit: Branch 'master'

Colin Walters walters at kemper.freedesktop.org
Mon Jun 6 16:33:58 UTC 2016


 src/polkitbackend/polkitd.c |    4 ++++
 src/programs/pkaction.c     |    4 ++++
 src/programs/pkcheck.c      |    4 ++++
 src/programs/pkexec.c       |    3 +++
 src/programs/pkttyagent.c   |    4 ++++
 5 files changed, 19 insertions(+)

New commits:
commit daf3d5c2d15466a267221fcb099c59c870098e03
Author: Philip Withnall <philip.withnall at collabora.co.uk>
Date:   Thu May 19 10:08:08 2016 +0100

    data: Set GIO_USE_VFS=local in the environment
    
    There is no need for polkit to ever use GVFS to load files from
    non-local sources, so it's best to avoid loading GVFS code, and to just
    rely on the local implementation in GIO instead. This reduces the attack
    surface of polkit.
    
    Implemented for the daemon, pkaction, pkcheck, pkexec and pkttyagent,
    because none of them need remote file access.
    
    https://bugs.freedesktop.org/show_bug.cgi?id=95487

diff --git a/src/polkitbackend/polkitd.c b/src/polkitbackend/polkitd.c
index d1527fb..8d54ed7 100644
--- a/src/polkitbackend/polkitd.c
+++ b/src/polkitbackend/polkitd.c
@@ -22,6 +22,7 @@
 #include "config.h"
 
 #include <signal.h>
+#include <stdlib.h>
 
 #include <glib-unix.h>
 
@@ -169,6 +170,9 @@ main (int    argc,
   sigint_id = 0;
   registration_id = NULL;
 
+  /* Disable remote file access from GIO. */
+  setenv ("GIO_USE_VFS", "local", 1);
+
   g_type_init ();
 
   opt_context = g_option_context_new ("polkit system daemon");
diff --git a/src/programs/pkaction.c b/src/programs/pkaction.c
index f17a7dc..221662a 100644
--- a/src/programs/pkaction.c
+++ b/src/programs/pkaction.c
@@ -24,6 +24,7 @@
 #endif
 
 #include <stdio.h>
+#include <stdlib.h>
 #include <glib/gi18n.h>
 #include <polkit/polkit.h>
 
@@ -121,6 +122,9 @@ main (int argc, char *argv[])
   actions = NULL;
   ret = 1;
 
+  /* Disable remote file access from GIO. */
+  setenv ("GIO_USE_VFS", "local", 1);
+
   g_type_init ();
 
   opt_show_version = FALSE;
diff --git a/src/programs/pkcheck.c b/src/programs/pkcheck.c
index 5781893..33db128 100644
--- a/src/programs/pkcheck.c
+++ b/src/programs/pkcheck.c
@@ -24,6 +24,7 @@
 #endif
 
 #include <stdio.h>
+#include <stdlib.h>
 #include <glib/gi18n.h>
 #include <polkit/polkit.h>
 #define POLKIT_AGENT_I_KNOW_API_IS_SUBJECT_TO_CHANGE
@@ -362,6 +363,9 @@ main (int argc, char *argv[])
   local_agent_handle = NULL;
   ret = 126;
 
+  /* Disable remote file access from GIO. */
+  setenv ("GIO_USE_VFS", "local", 1);
+
   g_type_init ();
 
   details = polkit_details_new ();
diff --git a/src/programs/pkexec.c b/src/programs/pkexec.c
index 50de92c..3b29b24 100644
--- a/src/programs/pkexec.c
+++ b/src/programs/pkexec.c
@@ -503,6 +503,9 @@ main (int argc, char *argv[])
   opt_user = NULL;
   local_agent_handle = NULL;
 
+  /* Disable remote file access from GIO. */
+  setenv ("GIO_USE_VFS", "local", 1);
+
   /* check for correct invocation */
   if (geteuid () != 0)
     {
diff --git a/src/programs/pkttyagent.c b/src/programs/pkttyagent.c
index 423b728..8aac7dd 100644
--- a/src/programs/pkttyagent.c
+++ b/src/programs/pkttyagent.c
@@ -24,6 +24,7 @@
 #endif
 
 #include <stdio.h>
+#include <stdlib.h>
 #include <glib/gi18n.h>
 #include <polkit/polkit.h>
 #define POLKIT_AGENT_I_KNOW_API_IS_SUBJECT_TO_CHANGE
@@ -74,6 +75,9 @@ main (int argc, char *argv[])
   guint ret = 126;
   GVariantBuilder builder;
 
+  /* Disable remote file access from GIO. */
+  setenv ("GIO_USE_VFS", "local", 1);
+
   g_type_init ();
 
   error = NULL;


More information about the hal-commit mailing list