]> git.mikk.net Git - smtpsink/commitdiff
Fix privilege dropping.
authorchris mikkelson <chris@mikk.net>
Tue, 30 Mar 2010 21:35:25 +0000 (16:35 -0500)
committerchris mikkelson <chris@mikk.net>
Tue, 30 Mar 2010 21:35:25 +0000 (16:35 -0500)
smtpsink.c

index 0b3c4186ad225b6f171e681d0155371513a0122c..89e0e6432b6327bdf5a9cee14e1551c9261d80e1 100644 (file)
@@ -106,7 +106,7 @@ main(int argc, char **argv)
                        break;
                case 'g':
                        if ((gr = getgrnam(optarg)))
-                               uid = gr->gr_gid;
+                               gid = gr->gr_gid;
                        else
                                errx(1, "unknown group '%s'\n", optarg);
                        break;
@@ -137,13 +137,6 @@ main(int argc, char **argv)
 
        if (!flaglisten) new_listener(l_default);
 
-       if (gid)
-               if (setgid(gid) < 0)
-                       err(1, "setgid() failed");
-       if (uid)
-               if (setuid(uid) < 0)
-                       err(1, "setuid() failed");
-
        openlog("smtpsink",LOG_PID,LOG_MAIL);
        signal(SIGPIPE,SIG_IGN);
 
@@ -153,6 +146,13 @@ main(int argc, char **argv)
                new_listener(listeners[i]);
        }
 
+       if (gid)
+               if (setgid(gid) < 0)
+                       err(1, "setgid() failed");
+       if (uid)
+               if (setuid(uid) < 0)
+                       err(1, "setuid() failed");
+
        conn_pool_init(concurrency);
        io_init();
        smtp_init(tstart);