]> granicus.if.org Git - sudo/commitdiff
When creating a passwd struct from a uid that is not in the passwd
authorTodd C. Miller <Todd.Miller@courtesan.com>
Thu, 16 Apr 2015 19:19:04 +0000 (13:19 -0600)
committerTodd C. Miller <Todd.Miller@courtesan.com>
Thu, 16 Apr 2015 19:19:04 +0000 (13:19 -0600)
database, set pw_gid to the user's gid instead of whatever the user
specified via the -g flag (or 0 if no -g).

plugins/sudoers/sudoers.c
plugins/sudoers/testsudoers.c

index b165cd02d24f66da2ff86dd0867f566c20eb67d8..232b08fc4c8509c853ab175a11caef228b6f034d 100644 (file)
@@ -950,7 +950,7 @@ set_runaspw(const char *user, bool quiet)
        uid_t uid = sudo_strtoid(user + 1, NULL, NULL, &errstr);
        if (errstr == NULL) {
            if ((pw = sudo_getpwuid(uid)) == NULL)
-               pw = sudo_fakepwnam(user, runas_gr ? runas_gr->gr_gid : 0);
+               pw = sudo_fakepwnam(user, user_gid);
        }
     }
     if (pw == NULL) {
index 3006d5ae613598cc9abf2c634f0ac141f08823d1..7c93e96016d58fcec81c9149a7311ff73701fec1 100644 (file)
@@ -357,7 +357,7 @@ set_runaspw(const char *user)
        uid_t uid = sudo_strtoid(user + 1, NULL, NULL, &errstr);
        if (errstr == NULL) {
            if ((pw = sudo_getpwuid(uid)) == NULL)
-               pw = sudo_fakepwnam(user, runas_gr ? runas_gr->gr_gid : 0);
+               pw = sudo_fakepwnam(user, user_gid);
        }
     }
     if (pw == NULL) {