diff options
| author | Oliver <zen@noreply.codeberg.org> | 2025-07-16 20:21:20 +0200 |
|---|---|---|
| committer | Oliver <zen@noreply.codeberg.org> | 2025-07-16 20:21:20 +0200 |
| commit | 3554a73aa50526631961efcca78c6c8eb2a16911 (patch) | |
| tree | fc4c21a65337ab8ecb4fb00aa551ee21997faf6f /sandbox.c | |
| parent | d6973cf43adfd67000e76eed26fadea7c265a09c (diff) | |
| parent | a2518f5d70b19f9cafd860bd6cde22399c452b60 (diff) | |
Merge pull request 'master' (#9) from grunfink/snac2:master into master
Reviewed-on: https://codeberg.org/zen/snac2/pulls/9
Diffstat (limited to 'sandbox.c')
| -rw-r--r-- | sandbox.c | 14 |
1 files changed, 14 insertions, 0 deletions
@@ -13,6 +13,14 @@ void sbox_enter(const char *basedir) return; } + int smail; + const char *url = xs_dict_get(srv_config, "smtp_url"); + + if (xs_is_string(url) && *url) + smail = 0; + else + smail = !xs_is_true(xs_dict_get(srv_config, "disable_email_notifications")); + srv_debug(1, xs_fmt("Calling unveil()")); unveil(basedir, "rwc"); unveil("/tmp", "rwc"); @@ -25,6 +33,9 @@ void sbox_enter(const char *basedir) if (*address == '/') unveil(address, "rwc"); + if (smail) + unveil("/usr/sbin/sendmail", "x"); + unveil(NULL, NULL); srv_debug(1, xs_fmt("Calling pledge()")); @@ -34,6 +45,9 @@ void sbox_enter(const char *basedir) if (*address == '/') p = xs_str_cat(p, " unix"); + if (smail) + p = xs_str_cat(p, " exec"); + pledge(p, NULL); } |