With filters most likely defaulting to /usr/local/libexec/smtpd in the  
near future I would like to add this as the default PATH, followed by
the usual suspects. I left the usual suspects in place because people
have shown they already implement filters in awk and probably will do
so in /bin/sh in the future, which will need all the other paths.

I put it in PATH_FILTER, so it can easily be altered for portable
where sysadmins may decide to change the path for filters or for
us if we ever want anything in base under /usr/libexec/smtpd.

OK?

martijn@

Index: smtpd.c
===================================================================
RCS file: /cvs/src/usr.sbin/smtpd/smtpd.c,v
retrieving revision 1.324
diff -u -p -r1.324 smtpd.c
--- smtpd.c     26 Jul 2019 07:08:34 -0000      1.324
+++ smtpd.c     2 Sep 2019 15:00:47 -0000
@@ -1350,6 +1350,7 @@ fork_processor(const char *name, const c
         */
        if (read(STDERR_FILENO, &buf, 1) != 0)
                errx(1, "lka didn't properly close write end of error socket");
+       setenv("PATH", PATH_FILTER, 1);
        if (system(command) == -1)
                err(1, NULL);
 
Index: smtpd.h
===================================================================
RCS file: /cvs/src/usr.sbin/smtpd/smtpd.h,v
retrieving revision 1.633
diff -u -p -r1.633 smtpd.h
--- smtpd.h     28 Aug 2019 15:50:36 -0000      1.633
+++ smtpd.h     2 Sep 2019 15:00:47 -0000
@@ -56,6 +56,7 @@
 #define SMTPD_BACKLOG           5
 
 #define        PATH_SMTPCTL            "/usr/sbin/smtpctl"
+#define PATH_FILTER            "/usr/local/libexec/smtpd:" _PATH_DEFPATH
 
 #define PATH_OFFLINE           "/offline"
 #define PATH_PURGE             "/purge"

Reply via email to