Hello,

what is the status of this?

FWIW I send the patch which prints how privileges are detected.

For me it falls back to seteuid which does not seem to be usable detection.

Thanks

Michal
Index: xserver/hw/xfree86/common/xf86Init.c
===================================================================
--- xserver.orig/hw/xfree86/common/xf86Init.c	2011-10-07 17:08:30.000000000 +0200
+++ xserver/hw/xfree86/common/xf86Init.c	2011-10-07 17:29:29.000000000 +0200
@@ -242,18 +242,26 @@
 Bool xf86PrivsElevated(void)
 {
   if (!privsTested) {
+    fprintf(stderr, "%s: not tested yet.\n", __FUNCTION__);
 #if !defined(WIN32)
     if ((getuid() != geteuid()) || (getgid() != getegid())) {
+      fprintf(stderr, "%s: elevated: uid %i, euid %i, gid %i, egid %i.\n",
+          __FUNCTION__, getuid(), geteuid(), getgid(), getegid());
       privsElevated = TRUE;
     } else {
 #if defined(HASSETUGID)
       privsElevated = issetugid();
+      if (privsElevated)
+        fprintf(stderr, "%s: elevated: %i.\n", __FUNCTION__, issetugid());
 #elif defined(HASGETRESUID)
       uid_t ruid, euid, suid;
       gid_t rgid, egid, sgid;
       if ((getresuid(&ruid, &euid, &suid) == 0) &&
           (getresgid(&rgid, &egid, &sgid) == 0))
         privsElevated = (euid != suid) || (egid != sgid);
+      if (privsElevated)
+        fprintf(stderr, "%s: elevated: ruid %i, euid %i, suid %i, rgid %i, egid %i, sgid %i.\n",
+            __FUNCTION__, ruid, euid, suid, rgid, egid, sgid);
 #else
       /*
        * If there are saved ID's the process might still be priviledged
@@ -266,6 +274,7 @@
       if (seteuid(0) != 0) {
         privsElevated = FALSE;
       } else {
+        fprintf(stderr, "%s: elevated: seteuid(0)\n", __FUNCTION__);
         if (seteuid(oldeuid) == -1) {
 	  /* XXX ouch, coudn't get back to original uid
 	   what can we do ??? */
_______________________________________________
[email protected]: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel

Reply via email to