xserver: Branch 'master'

Adam Jackson ajax at kemper.freedesktop.org
Mon Oct 19 09:18:27 PDT 2015


 hw/xfree86/xorg-wrapper.c |    6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

New commits:
commit 1d4aa672424d8b1629fda11400b88607b5066965
Author: Julien Cristau <jcristau at debian.org>
Date:   Mon Oct 19 15:42:30 2015 +0200

    xorg-wrapper: when starting the server as root, reset its environment
    
    When the server is privileged, we shouldn't be passing the user's
    environment directly.
    
    Clearing the environment is recommended by the libdbus maintainers, see
    https://bugs.freedesktop.org/show_bug.cgi?id=52202
    
    v2: rename envp to empty_envp (Jeremy)
    Reviewed-by: Hans de Goede <hdegoede at redhat.com>
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=83849
    Signed-off-by: Julien Cristau <jcristau at debian.org>

diff --git a/hw/xfree86/xorg-wrapper.c b/hw/xfree86/xorg-wrapper.c
index 75d120a..6f658d7 100644
--- a/hw/xfree86/xorg-wrapper.c
+++ b/hw/xfree86/xorg-wrapper.c
@@ -194,6 +194,7 @@ int main(int argc, char *argv[])
     int total_cards = 0;
     int allowed = CONSOLE_ONLY;
     int needs_root_rights = -1;
+    char *const empty_envp[1] = { NULL, };
 
     progname = argv[0];
 
@@ -271,7 +272,10 @@ int main(int argc, char *argv[])
     }
 
     argv[0] = buf;
-    (void) execv(argv[0], argv);
+    if (getuid() == geteuid())
+        (void) execv(argv[0], argv);
+    else
+        (void) execve(argv[0], argv, empty_envp);
     fprintf(stderr, "%s: Failed to execute %s: %s\n",
         progname, buf, strerror(errno));
     exit(1);


More information about the xorg-commit mailing list