[svn:qpsmtpd] r584 - branches/0.3x
[email protected] 11 Dec 2005 02:19:44 -0000
| Newsgroups | perl.cvs.qpsmtpd |
|---|---|
| Message-ID | <[email protected]> |
Author: aqua
Date: Sat Dec 10 18:19:43 2005
New Revision: 584
Modified:
branches/0.3x/qpsmtpd-forkserver
Log:
Drop root privileges before loading plugins, rather than after. This reduces
root exposure, and avoids (e.g.) files being created as root which then won't
be writable by the normal qpsmtpd user.
Modified: branches/0.3x/qpsmtpd-forkserver
==============================================================================
--- branches/0.3x/qpsmtpd-forkserver (original)
+++ branches/0.3x/qpsmtpd-forkserver Sat Dec 10 18:19:43 2005
@@ -129,7 +129,6 @@ if ($PID_FILE) {
# Load plugins here
my $qpsmtpd = Qpsmtpd::TcpServer->new();
-$qpsmtpd->load_plugins;
# Drop privileges
my (undef, undef, $quid, $qgid) = getpwnam $USER or
@@ -138,7 +137,6 @@ my $groups = "$qgid $qgid";
while (my ($name,$passwd,$gid,$members) = getgrent()) {
my @m = split(/ /, $members);
if (grep {$_ eq $USER} @m) {
- ::log(LOGINFO,"$USER is member of group $name($gid)");
$groups .= " $gid";
}
}
@@ -149,6 +147,8 @@ POSIX::setuid($quid) or
die "unable to change uid: $!\n";
$> = $quid;
+$qpsmtpd->load_plugins;
+
::log(LOGINFO,"Listening on port $PORT");
::log(LOGINFO, 'Running as user '.
(getpwuid($>) || $>) .