Remove PERM_FULL_USER (which is no longer used) and add PERM_FULL_ROOT
(used when exec'ing the mailer).
This commit is contained in:
33
set_perms.c
33
set_perms.c
@@ -93,19 +93,20 @@ set_perms_posix(perm, sudo_mode)
|
||||
if (seteuid(0))
|
||||
fatal("seteuid(0)");
|
||||
break;
|
||||
|
||||
case PERM_FULL_ROOT:
|
||||
/* headed for exec() */
|
||||
(void) seteuid(0);
|
||||
if (setuid(0))
|
||||
fatal("setuid(0)");
|
||||
break;
|
||||
|
||||
case PERM_USER:
|
||||
(void) setegid(user_gid);
|
||||
if (seteuid(user_uid))
|
||||
fatal("seteuid(user_uid)");
|
||||
break;
|
||||
|
||||
case PERM_FULL_USER:
|
||||
/* headed for exec() */
|
||||
(void) setgid(user_gid);
|
||||
if (setuid(user_uid))
|
||||
fatal("setuid(user_uid)");
|
||||
break;
|
||||
|
||||
case PERM_RUNAS:
|
||||
/* headed for exec(), assume euid == 0 */
|
||||
runas_setup();
|
||||
@@ -155,25 +156,18 @@ set_perms_fallback(perm, sudo_mode)
|
||||
int error;
|
||||
|
||||
switch (perm) {
|
||||
case PERM_FULL_ROOT:
|
||||
case PERM_ROOT:
|
||||
if (setuid(0))
|
||||
fatal("setuid(0)");
|
||||
break;
|
||||
|
||||
case PERM_USER:
|
||||
(void) setegid(user_gid);
|
||||
if (setreuid(0, user_uid))
|
||||
fatal("setreuid(0, user_uid)");
|
||||
break;
|
||||
|
||||
case PERM_FULL_USER:
|
||||
/* headed for exec() */
|
||||
(void) setgid(user_gid);
|
||||
if (setuid(user_uid)) {
|
||||
fatal("setuid(user_uid)");
|
||||
exit(1);
|
||||
}
|
||||
break;
|
||||
|
||||
case PERM_RUNAS:
|
||||
/* headed for exec(), assume euid == 0 */
|
||||
runas_setup();
|
||||
@@ -234,13 +228,6 @@ set_perms_fallback(perm, sudo_mode)
|
||||
fatal("seteuid(user_uid)");
|
||||
break;
|
||||
|
||||
case PERM_FULL_USER:
|
||||
/* headed for exec() */
|
||||
(void) setgid(user_gid);
|
||||
if (setuid(user_uid))
|
||||
fatal("setuid(user_uid)");
|
||||
break;
|
||||
|
||||
case PERM_RUNAS:
|
||||
/* headed for exec(), assume euid == 0 */
|
||||
runas_setup();
|
||||
|
Reference in New Issue
Block a user