[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

xorg-server: Changes to 'debian-experimental'



 debian/changelog                      |    3 +++
 debian/patches/xorg-wrapper-envp.diff |   15 +++++++++------
 2 files changed, 12 insertions(+), 6 deletions(-)

New commits:
commit b57a76cfb9801786cc922e34ec1bd9e42802e472
Author: Julien Cristau <jcristau@debian.org>
Date:   Wed Sep 2 11:55:29 2015 +0200

    Only reset environment in the Xorg wrapper if we didn't drop privileges.

diff --git a/debian/changelog b/debian/changelog
index 82e7b25..e35fa2d 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -8,6 +8,9 @@ xorg-server (2:1.17.2-3) UNRELEASED; urgency=medium
   * Update Vcs-* fields.
   * Add upstream url.
 
+  [ Julien Cristau ]
+  * Only reset environment in the Xorg wrapper if we didn't drop privileges.
+
  -- Laurent Bigonville <bigon@debian.org>  Sat, 22 Aug 2015 16:29:11 +0200
 
 xorg-server (2:1.17.2-2) experimental; urgency=medium
diff --git a/debian/patches/xorg-wrapper-envp.diff b/debian/patches/xorg-wrapper-envp.diff
index 6e427f4..47fa90e 100644
--- a/debian/patches/xorg-wrapper-envp.diff
+++ b/debian/patches/xorg-wrapper-envp.diff
@@ -1,7 +1,7 @@
-diff --git a/hw/xfree86/xorg-wrapper.c b/hw/xfree86/xorg-wrapper.c
-index 22e97ad..10e6fe8 100644
---- a/hw/xfree86/xorg-wrapper.c
-+++ b/hw/xfree86/xorg-wrapper.c
+Index: xorg-server/hw/xfree86/xorg-wrapper.c
+===================================================================
+--- xorg-server.orig/hw/xfree86/xorg-wrapper.c
++++ xorg-server/hw/xfree86/xorg-wrapper.c
 @@ -190,6 +190,7 @@ int main(int argc, char *argv[])
      int total_cards = 0;
      int allowed = CONSOLE_ONLY;
@@ -10,12 +10,15 @@ index 22e97ad..10e6fe8 100644
  
      progname = argv[0];
  
-@@ -265,7 +266,7 @@ int main(int argc, char *argv[])
+@@ -265,7 +266,10 @@ int main(int argc, char *argv[])
      }
  
      argv[0] = buf;
 -    (void) execv(argv[0], argv);
-+    (void) execve(argv[0], argv, envp);
++    if (getuid() == geteuid())
++        (void) execv(argv[0], argv);
++    else
++        (void) execve(argv[0], argv, envp);
      fprintf(stderr, "%s: Failed to execute %s: %s\n",
          progname, buf, strerror(errno));
      exit(1);


Reply to: