[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.37 and 1.38

version 1.37, 2015/01/16 06:40:12 version 1.38, 2015/06/22 12:29:57
Line 76 
Line 76 
                         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 (user_groupslen > 0 && setgroups(user_groupslen, user_groups) < 0)
                 fatal("setgroups: %.100s", strerror(errno));                  fatal("setgroups: %.100s", strerror(errno));
         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,
Line 103 
Line 103 
         /* Set the effective uid back to the saved privileged uid. */          /* Set the effective uid back to the saved privileged uid. */
         if (seteuid(saved_euid) < 0)          if (seteuid(saved_euid) < 0)
                 fatal("seteuid %u: %.100s", (u_int)saved_euid, strerror(errno));                  fatal("seteuid %u: %.100s", (u_int)saved_euid, strerror(errno));
         if (setgroups(saved_egroupslen, saved_egroups) < 0)          if (saved_egroupslen > 0 &&
               setgroups(saved_egroupslen, saved_egroups) < 0)
                 fatal("setgroups: %.100s", strerror(errno));                  fatal("setgroups: %.100s", strerror(errno));
         if (setegid(saved_egid) < 0)          if (setegid(saved_egid) < 0)
                 fatal("setegid %u: %.100s", (u_int)saved_egid, strerror(errno));                  fatal("setegid %u: %.100s", (u_int)saved_egid, strerror(errno));

Legend:
Removed from v.1.37  
changed lines
  Added in v.1.38