disallow non-root from starting daemon or queue mode;
authorMike Karels <karels@ucbvax.Berkeley.EDU>
Sat, 19 Nov 1988 08:32:16 +0000 (00:32 -0800)
committerMike Karels <karels@ucbvax.Berkeley.EDU>
Sat, 19 Nov 1988 08:32:16 +0000 (00:32 -0800)
unset HOSTALIASES for daemon or queue mode

SCCS-vsn: usr.sbin/sendmail/src/main.c 5.23

usr/src/usr.sbin/sendmail/src/main.c

index 0d1d9bf..40a23d3 100644 (file)
@@ -23,7 +23,7 @@ char copyright[] =
 #endif /* not lint */
 
 #ifndef lint
 #endif /* not lint */
 
 #ifndef lint
-static char sccsid[] = "@(#)main.c     5.22 (Berkeley) %G%";
+static char sccsid[] = "@(#)main.c     5.23 (Berkeley) %G%";
 #endif /* not lint */
 
 #define        _DEFINE
 #endif /* not lint */
 
 #define        _DEFINE
@@ -301,7 +301,13 @@ main(argc, argv, envp)
                        switch (p[2])
                        {
                          case MD_DAEMON:
                        switch (p[2])
                        {
                          case MD_DAEMON:
-# ifndef DAEMON
+# ifdef DAEMON
+                               if (getuid() != 0) {
+                                       usrerr("Permission denied");
+                                       exit (EX_USAGE);
+                               }
+                               (void) unsetenv("HOSTALIASES");
+# else
                                usrerr("Daemon mode not implemented");
                                ExitStat = EX_USAGE;
                                break;
                                usrerr("Daemon mode not implemented");
                                ExitStat = EX_USAGE;
                                break;
@@ -400,6 +406,11 @@ main(argc, argv, envp)
 
                  case 'q':     /* run queue files at intervals */
 # ifdef QUEUE
 
                  case 'q':     /* run queue files at intervals */
 # ifdef QUEUE
+                       if (getuid() != 0) {
+                               usrerr("Permission denied");
+                               exit (EX_USAGE);
+                       }
+                       (void) unsetenv("HOSTALIASES");
                        queuemode = TRUE;
                        QueueIntvl = convtime(&p[2]);
 # else QUEUE
                        queuemode = TRUE;
                        QueueIntvl = convtime(&p[2]);
 # else QUEUE