r4011 - in trunk: . launchers



Author: timj
Date: 2006-10-22 16:26:22 -0400 (Sun, 22 Oct 2006)
New Revision: 4011

Modified:
   trunk/ChangeLog
   trunk/launchers/suidmain.c
Log:
Sun Oct 22 22:21:44 2006  Tim Janik  <timj gtk org>

        * launchers/suidmain.c: drop priviledges more reliably by re-querying
        the effective user id with geteuid() instead of just catching errors.




Modified: trunk/ChangeLog
===================================================================
--- trunk/ChangeLog	2006-10-22 12:32:43 UTC (rev 4010)
+++ trunk/ChangeLog	2006-10-22 20:26:22 UTC (rev 4011)
@@ -1,3 +1,8 @@
+Sun Oct 22 22:21:44 2006  Tim Janik  <timj gtk org>
+
+	* launchers/suidmain.c: drop priviledges more reliably by re-querying
+	the effective user id with geteuid() instead of just catching errors.
+
 Sun Oct 22 14:31:48 2006  Stefan Westerfeld  <stefan space twc de>
 
 	* web/news.doxi: A summary of the things that happened since the last

Modified: trunk/launchers/suidmain.c
===================================================================
--- trunk/launchers/suidmain.c	2006-10-22 12:32:43 UTC (rev 4010)
+++ trunk/launchers/suidmain.c	2006-10-22 20:26:22 UTC (rev 4011)
@@ -60,7 +60,6 @@
       char **argv)
 {
   const char *executable = NULL;
-
   int euid = geteuid ();
   int uid = getuid ();
 
@@ -70,18 +69,18 @@
   /* drop root privileges if running setuid root as soon as possible */
   if (euid != uid)
     {
-      int err;
 #if     HAVE_SETEUID
-      err = seteuid (uid);
+      seteuid (uid);
 #elif   HAVE_SETREUID
-      err = setreuid (-1, uid);
+      setreuid (-1, uid);
 #else
 #error platform misses facility to drop privileges
 #endif
-      if (err != 0)
+      /* verify priviledge drop */
+      if (geteuid() != uid)
         {
           fprintf (stderr, "%s: failed to drop priviledges: %s\n", argv[0], strerror (errno));
-          _exit (2);
+          _exit (255);
         }
     }
 




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