aboutsummaryrefslogtreecommitdiff
path: root/sandbox.c
diff options
context:
space:
mode:
authorshtrophic <christoph@liebender.dev>2025-01-24 20:38:26 +0100
committershtrophic <christoph@liebender.dev>2025-01-24 20:38:26 +0100
commit85be7f36e12507cff7607df22ca14f8bfc00f6e2 (patch)
treee41bedab3e3b011c16d2ea6180926470cc8586aa /sandbox.c
parent13e4a7cda59db29063efc5dad0823fe99ec7b764 (diff)
parent1cb7b37ae6adb01444ea1466d8884aacca10ebd8 (diff)
Merge remote-tracking branch 'upstream/master' into curl-smtp
Diffstat (limited to 'sandbox.c')
-rw-r--r--sandbox.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/sandbox.c b/sandbox.c
index 875ae4e..5046104 100644
--- a/sandbox.c
+++ b/sandbox.c
@@ -63,15 +63,22 @@ LL_BEGIN(sbox_enter_linux_, const char* basedir, const char *address, int smtp_p
LANDLOCK_ACCESS_FS_REFER_COMPAT,
s = LANDLOCK_ACCESS_FS_MAKE_SOCK,
x = LANDLOCK_ACCESS_FS_EXECUTE;
+ char *resolved_path = NULL;
LL_PATH(basedir, rf|rd|w|c);
LL_PATH("/tmp", rf|rd|w|c);
#ifndef WITHOUT_SHM
LL_PATH("/dev/shm", rf|w|c );
#endif
+ LL_PATH("/dev/urandom", rf );
LL_PATH("/etc/resolv.conf", rf );
LL_PATH("/etc/hosts", rf );
- LL_PATH("/etc/ssl", rf );
+ LL_PATH("/etc/ssl", rf|rd );
+ if ((resolved_path = realpath("/etc/ssl/cert.pem", NULL))) {
+ /* some distros like cert.pem to be a symlink */
+ LL_PATH(resolved_path, rf );
+ free(resolved_path);
+ }
LL_PATH("/usr/share/zoneinfo", rf );
if (mtime("/etc/pki") > 0)