PolicyKit: Branch 'master'

Colin Walters walters at kemper.freedesktop.org
Thu Apr 11 10:32:08 PDT 2013


 src/programs/pkexec.c |   10 ++++++++++
 1 file changed, 10 insertions(+)

New commits:
commit 5aef9722c15a350fbf8b20a3b58419f156cc7c98
Author: Steve Langasek <steve.langasek at canonical.com>
Date:   Fri Mar 8 12:00:00 2013 +0100

    pkexec: Set process environment from pam_getenvlist()
    
    Various pam modules provide environment variables that are intended to be set
    in the environment of the pam session.  pkexec needs to process the output of
    pam_getenvlist() to get these.
    
    https://bugs.freedesktop.org/show_bug.cgi?id=62016

diff --git a/src/programs/pkexec.c b/src/programs/pkexec.c
index f42a3bb..529898a 100644
--- a/src/programs/pkexec.c
+++ b/src/programs/pkexec.c
@@ -145,6 +145,7 @@ open_session (const gchar *user_to_auth)
   gboolean ret;
   gint rc;
   pam_handle_t *pam_h;
+  char **envlist;
   struct pam_conv conversation;
 
   ret = FALSE;
@@ -176,6 +177,15 @@ open_session (const gchar *user_to_auth)
 
   ret = TRUE;
 
+  envlist = pam_getenvlist (pam_h);
+  if (envlist != NULL)
+    {
+      guint n;
+      for (n = 0; envlist[n]; n++)
+        putenv (envlist[n]);
+      free (envlist);
+    }
+
 out:
   if (pam_h != NULL)
     pam_end (pam_h, rc);


More information about the hal-commit mailing list