Browse Source

On OpenBSD, don't enable sendmail if email notifications are disabled.

default 1 year ago
parent
commit
b6f8d8e900
1 changed files with 11 additions and 2 deletions
  1. 11 2
      data.c

+ 11 - 2
data.c

@@ -117,18 +117,27 @@ int srv_open(char *basedir, int auto_upgrade)
         srv_debug(1, xs_dup("OpenBSD security disabled by admin"));
     }
     else {
+        int smail = xs_type(xs_dict_get(srv_config, "disable_email_notifications")) != XSTYPE_TRUE;
+
         srv_debug(1, xs_fmt("Calling unveil()"));
         unveil(basedir,                "rwc");
         unveil("/tmp",                 "rwc");
-        unveil("/usr/sbin/sendmail",   "x");
         unveil("/etc/resolv.conf",     "r");
         unveil("/etc/hosts",           "r");
         unveil("/etc/ssl/openssl.cnf", "r");
         unveil("/etc/ssl/cert.pem",    "r");
         unveil("/usr/share/zoneinfo",  "r");
+
+        if (smail)
+            unveil("/usr/sbin/sendmail",   "x");
+
         unveil(NULL,                   NULL);
         srv_debug(1, xs_fmt("Calling pledge()"));
-        pledge("stdio rpath wpath cpath flock inet proc exec dns fattr", NULL);
+
+        if (smail)
+            pledge("stdio rpath wpath cpath flock inet proc exec dns fattr", NULL);
+        else
+            pledge("stdio rpath wpath cpath flock inet proc dns fattr", NULL);
     }
 #endif /* __OpenBSD__ */