[BACK]Return to uidswap.c CVS log [TXT][DIR] Up to [local] / src / usr.bin / ssh

Diff for /src/usr.bin/ssh/uidswap.c between version 1.16.2.3 and 1.17

version 1.16.2.3, 2002/06/02 22:56:11 version 1.17, 2001/08/08 18:20:15
Line 54 
Line 54 
         }          }
         privileged = 1;          privileged = 1;
         temporarily_use_uid_effective = 1;          temporarily_use_uid_effective = 1;
         saved_egid = getegid();          saved_egid = getegid();
         saved_egroupslen = getgroups(NGROUPS_MAX, saved_egroups);          saved_egroupslen = getgroups(NGROUPS_MAX, saved_egroups);
         if (saved_egroupslen < 0)          if (saved_egroupslen < 0)
                 fatal("getgroups: %.100s", strerror(errno));                  fatal("getgroups: %.100s", strerror(errno));
   
Line 64 
Line 64 
                 if (initgroups(pw->pw_name, pw->pw_gid) < 0)                  if (initgroups(pw->pw_name, pw->pw_gid) < 0)
                         fatal("initgroups: %s: %.100s", pw->pw_name,                          fatal("initgroups: %s: %.100s", pw->pw_name,
                             strerror(errno));                              strerror(errno));
                 user_groupslen = getgroups(NGROUPS_MAX, user_groups);                  user_groupslen = getgroups(NGROUPS_MAX, user_groups);
                 if (user_groupslen < 0)                  if (user_groupslen < 0)
                         fatal("getgroups: %.100s", strerror(errno));                          fatal("getgroups: %.100s", strerror(errno));
         }          }
         /* Set the effective uid to the given (unprivileged) uid. */          /* Set the effective uid to the given (unprivileged) uid. */
         if (setgroups(user_groupslen, user_groups) < 0)          if (setgroups(user_groupslen, user_groups) < 0)
                 fatal("setgroups: %.100s", strerror(errno));                  fatal("setgroups: %.100s", strerror(errno));
           pw->pw_gid = pw->pw_gid;
         if (setegid(pw->pw_gid) < 0)          if (setegid(pw->pw_gid) < 0)
                 fatal("setegid %u: %.100s", (u_int) pw->pw_gid,                  fatal("setegid %u: %.100s", (u_int) pw->pw_gid,
                     strerror(errno));                      strerror(errno));
Line 108 
Line 109 
 void  void
 permanently_set_uid(struct passwd *pw)  permanently_set_uid(struct passwd *pw)
 {  {
           /* it's a no-op unless privileged */
           if (!privileged)
                   return;
         if (temporarily_use_uid_effective)          if (temporarily_use_uid_effective)
                 fatal("restore_uid: temporarily_use_uid effective");                  fatal("restore_uid: temporarily_use_uid effective");
         if (setgid(pw->pw_gid) < 0)          if (setgid(pw->pw_gid) < 0)

Legend:
Removed from v.1.16.2.3  
changed lines
  Added in v.1.17