If /etc/mailer.conf doesn't exist, mailwrapper tries to run sendmail,
giving a confusing error message:

    mailwrapper: cannot exec /usr/libexec/sendmail/sendmail: No such
    file or directory

This patch removes this fallback code. I believe this is cleaner than
updating the fallback since we would have to put two paths in: one for
sendmail/send-mail/mailq and one for makemap/newaliases.

Index: mailwrapper.c
===================================================================
RCS file: /cvs/src/usr.sbin/mailwrapper/mailwrapper.c,v
retrieving revision 1.20
diff -u -p -r1.20 mailwrapper.c
--- mailwrapper.c   12 Oct 2015 22:01:08 -0000  1.20
+++ mailwrapper.c   7 Dec 2015 21:33:57 -0000
@@ -36,12 +36,10 @@
 #include <stdio.h>
 #include <string.h>
 #include <stdlib.h>
-#include <syslog.h>
 #include <unistd.h>
 #include <util.h>
 
 #define _PATH_MAILERCONF   "/etc/mailer.conf"
-#define _PATH_DEFAULTMTA   "/usr/libexec/sendmail/sendmail"
 
 struct arglist {
    size_t argc, maxc;
@@ -100,21 +98,11 @@ main(int argc, char *argv[], char *envp[
    for (len = 0; len < argc; len++)
        addarg(&al, argv[len], 0);
 
-   config = fopen(_PATH_MAILERCONF, "r");
+   if ((config = fopen(_PATH_MAILERCONF, "r")) == NULL)
+       err(1, "cannot open %s", _PATH_MAILERCONF);
 
    if (pledge("stdio exec", NULL) == -1)
        err(1, "pledge");
-
-   if (config == NULL) {
-       addarg(&al, NULL, 0);
-       openlog(__progname, LOG_PID, LOG_MAIL);
-       syslog(LOG_INFO, "cannot open %s, using %s as default MTA",
-           _PATH_MAILERCONF, _PATH_DEFAULTMTA);
-       closelog();
-       execve(_PATH_DEFAULTMTA, al.argv, envp);
-       err(1, "cannot exec %s", _PATH_DEFAULTMTA);
-       /*NOTREACHED*/
-   }
 
    for (;;) {
        if ((line = fparseln(config, &len, &lineno, NULL, 0)) == NULL) {

Reply via email to