You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficserver.apache.org by mt...@apache.org on 2010/05/15 12:07:28 UTC

svn commit: r944608 - /trafficserver/traffic/trunk/proxy/Main.cc

Author: mturk
Date: Sat May 15 10:07:28 2010
New Revision: 944608

URL: http://svn.apache.org/viewvc?rev=944608&view=rev
Log:
Check for user_id=#-1 before calling change_uid_gid()

Modified:
    trafficserver/traffic/trunk/proxy/Main.cc

Modified: trafficserver/traffic/trunk/proxy/Main.cc
URL: http://svn.apache.org/viewvc/trafficserver/traffic/trunk/proxy/Main.cc?rev=944608&r1=944607&r2=944608&view=diff
==============================================================================
--- trafficserver/traffic/trunk/proxy/Main.cc (original)
+++ trafficserver/traffic/trunk/proxy/Main.cc Sat May 15 10:07:28 2010
@@ -1660,10 +1660,6 @@ change_uid_gid(const char *user)
 #endif
 
   if (geteuid()) {
-    if (strcmp(user, "#-1") == 0) {
-      // User was not specified
-      return;
-    }
     // We cannot change user if not running as root
     ink_fatal_die("Can't change user to : %s, because not running as root",
                   user);
@@ -1671,15 +1667,8 @@ change_uid_gid(const char *user)
   else {
     if (user[0] == '#') {
       // numeric user notation
-      int uid = atoi(&user[1]);
-      if (uid == -1) {
-        // TODO: proxy.config.admin.user_id=#-1 is the same specifying no user?
-#if !defined(__GNUC__)
-        xfree(buf);
-#endif
-        return;
-      }
-      getpwuid_r((uid_t)uid, &pwbuf, buf, buflen, &pwbufp);
+      uid_t uid = (uid_t)atoi(&user[1]);
+      getpwuid_r(uid, &pwbuf, buf, buflen, &pwbufp);
     }
     else {
       // read the entry from the passwd file
@@ -2202,7 +2191,10 @@ main(int argc, char **argv)
 
   // change the user of the process
   char user[_POSIX_LOGIN_NAME_MAX] = "\0";
-  if ((TS_ReadConfigString(user, "proxy.config.admin.user_id", sizeof(user)) == REC_ERR_OKAY) && user[0] != '\0') {
+  if ((TS_ReadConfigString(user, "proxy.config.admin.user_id",
+                           sizeof(user)) == REC_ERR_OKAY) &&
+                           user[0] != '\0' &&
+                           strcmp(user, "#-1")) {
     change_uid_gid(user);
   }