summaryrefslogtreecommitdiffstats
path: root/maildrop/deliver.C
diff options
context:
space:
mode:
Diffstat (limited to 'maildrop/deliver.C')
-rw-r--r--maildrop/deliver.C8
1 files changed, 6 insertions, 2 deletions
diff --git a/maildrop/deliver.C b/maildrop/deliver.C
index 82d3108..2d06d33 100644
--- a/maildrop/deliver.C
+++ b/maildrop/deliver.C
@@ -280,8 +280,12 @@ int n;
for (n=0; n<NSIG; n++)
signal(n, SIG_DFL);
- setgroupid(getgid()); // Just in case.
- setuid(getuid());
+ if (setgroupid(getgid()) < 0 ||
+ setuid(getuid()) < 0)
+ {
+ perror("setuid/setgid");
+ _exit(100);
+ }
ExitTrap::onfork();
execle(shell, q, "-c", cmd, (const char *)0, env);
if (write (2, "Unable to execute ", 18) < 0 ||