From: David Levine Date: Sat, 14 Feb 2015 04:22:21 +0000 (-0600) Subject: Removed m_chkids(), per suggestion of Marcin Cieslak. X-Git-Tag: mmh-0.2-RC1~46 X-Git-Url: http://git.marmaro.de/?a=commitdiff_plain;h=24756fd85e33a76ac495073e90a7a56cb7f6103c;p=mmh Removed m_chkids(), per suggestion of Marcin Cieslak. --- 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; }