From 24756fd85e33a76ac495073e90a7a56cb7f6103c Mon Sep 17 00:00:00 2001 From: David Levine Date: Fri, 13 Feb 2015 22:22:21 -0600 Subject: [PATCH] Removed m_chkids(), per suggestion of Marcin Cieslak. --- sbr/context_save.c | 54 ++++++---------------------------------------------- 1 file changed, 6 insertions(+), 48 deletions(-) diff --git a/sbr/context_save.c b/sbr/context_save.c index d1371d0..ac0dbfd 100644 --- a/sbr/context_save.c +++ b/sbr/context_save.c @@ -6,19 +6,18 @@ ** complete copyright information. */ -#include -#include - /* -** static prototypes -*/ -static int m_chkids(void); + * This function used to support setuid/setgid programs by writing + * the file as the user. But that code, m_chkids(), was removed + * because there no longer are setuid/setgid programs in nmh. + */ +#include +#include void context_save(void) { - int action; register struct node *np; FILE *out; sigset_t set, oset; @@ -31,9 +30,6 @@ context_save(void) return; ctxflags &= ~CTXMOD; - if ((action = m_chkids()) > 0) - return; /* child did it for us */ - /* block a few signals */ sigemptyset(&set); sigaddset(&set, SIGHUP); @@ -50,42 +46,4 @@ context_save(void) lkfclose(out, ctxpath); sigprocmask(SIG_SETMASK, &oset, &set); /* reset the signal mask */ - - if (action == 0) - _exit(0); /* we are child, time to die */ -} - -/* -** This hack brought to you so we can handle set[ug]id MH programs. -** If we return -1, then no fork is made, we update .mh_profile -** normally, and return to the caller normally. If we return 0, -** then the child is executing, .mh_profile is modified after -** we set our [ug]ids to the norm. If we return > 0, then the -** parent is executed and .mh_profile has already be modified. -** We can just return to the caller immediately. -*/ - -static int -m_chkids(void) -{ - pid_t pid; - - if (getuid() == geteuid()) - return (-1); - - switch (pid = fork()) { - case -1: - break; - - case 0: - setgid(getgid()); - setuid(getuid()); - break; - - default: - pidwait(pid, -1); - break; - } - - return pid; } -- 1.7.10.4