[or-cvs] r17228: {tor} Log a little more when credential-switching fails. (tor/trunk/src/common)

nickm at seul.org nickm at seul.org
Sun Nov 9 16:54:55 UTC 2008


Author: nickm
Date: 2008-11-09 11:54:54 -0500 (Sun, 09 Nov 2008)
New Revision: 17228

Modified:
   tor/trunk/src/common/compat.c
Log:
Log a little more when credential-switching fails.

Modified: tor/trunk/src/common/compat.c
===================================================================
--- tor/trunk/src/common/compat.c	2008-11-09 16:41:06 UTC (rev 17227)
+++ tor/trunk/src/common/compat.c	2008-11-09 16:54:54 UTC (rev 17228)
@@ -1052,32 +1052,32 @@
 
   /* Properly switch egid,gid,euid,uid here or bail out */
   if (setgroups(1, &pw->pw_gid)) {
-    log_warn(LD_GENERAL, "Error setting configured groups: %s",
-             strerror(errno));
+    log_warn(LD_GENERAL, "Error setting groups to gid %d: %s",
+             (int)pw->pw_gid, strerror(errno));
     return -1;
   }
 
   if (setegid(pw->pw_gid)) {
-    log_warn(LD_GENERAL, "Error setting configured egid: %s",
-             strerror(errno));
+    log_warn(LD_GENERAL, "Error setting egid to %d: %s",
+             (int)pw->pw_gid, strerror(errno));
     return -1;
   }
 
   if (setgid(pw->pw_gid)) {
-    log_warn(LD_GENERAL, "Error setting configured gid: %s",
-             strerror(errno));
+    log_warn(LD_GENERAL, "Error setting gid to %d: %s",
+             (int)pw->pw_gid, strerror(errno));
     return -1;
   }
 
   if (setuid(pw->pw_uid)) {
-    log_warn(LD_GENERAL, "Error setting configured uid: %s",
-             strerror(errno));
+    log_warn(LD_GENERAL, "Error setting configured uid to %s (%d): %s",
+             user, (int)pw->pw_uid, strerror(errno));
     return -1;
   }
 
   if (seteuid(pw->pw_uid)) {
-    log_warn(LD_GENERAL, "Error setting configured euid: %s",
-             strerror(errno));
+    log_warn(LD_GENERAL, "Error setting configured euid to %s (%d): %s",
+             user, (int)pw->pw_uid, strerror(errno));
     return -1;
   }
 
@@ -1103,14 +1103,16 @@
     /* Try changing GID/EGID */
     if (pw->pw_gid != old_gid &&
         (setgid(old_gid) != -1 || setegid(old_gid) != -1)) {
-      log_warn(LD_GENERAL, "Was able to restore group credentials");
+      log_warn(LD_GENERAL, "Was able to restore group credentials even after "
+               "switching GID: this means that the setgid code didn't work.");
       return -1;
     }
 
     /* Try changing UID/EUID */
     if (pw->pw_uid != old_uid &&
         (setuid(old_uid) != -1 || seteuid(old_uid) != -1)) {
-      log_warn(LD_GENERAL, "Was able to restore user credentials");
+      log_warn(LD_GENERAL, "Was able to restore user credentials even after "
+               "switching UID: this means that the setuid code didn't work.");
       return -1;
     }
   }



More information about the tor-commits mailing list