snac2

Fork of https://codeberg.org/grunfink/snac2
git clone https://git.inz.fi/snac2
Log | Files | Refs | README | LICENSE

commit f625b7f729c816ea17e69dfa5bf4c09399dece6f
parent fb8145297c45c8fdfbdc3872c8345e51569a4a01
Author: shtrophic <christoph@liebender.dev>
Date:   Sun,  8 Dec 2024 09:01:57 +0100

don't try to make files directory-readable

Diffstat:
Msandbox.c | 44++++++++++++++++++++++----------------------
1 file changed, 22 insertions(+), 22 deletions(-)

diff --git a/sandbox.c b/sandbox.c @@ -13,30 +13,30 @@ static LL_BEGIN(sbox_enter_linux_, const char* basedir, const char *address, int smail) { const unsigned long long - r = LANDLOCK_ACCESS_FS_READ_DIR | - LANDLOCK_ACCESS_FS_READ_FILE, - w = LANDLOCK_ACCESS_FS_WRITE_FILE | - LANDLOCK_ACCESS_FS_TRUNCATE, - c = LANDLOCK_ACCESS_FS_MAKE_DIR | - LANDLOCK_ACCESS_FS_MAKE_REG | - LANDLOCK_ACCESS_FS_TRUNCATE | - LANDLOCK_ACCESS_FS_MAKE_SYM | - LANDLOCK_ACCESS_FS_REMOVE_DIR | - LANDLOCK_ACCESS_FS_REMOVE_FILE | - LANDLOCK_ACCESS_FS_REFER, - s = LANDLOCK_ACCESS_FS_MAKE_SOCK, - x = LANDLOCK_ACCESS_FS_EXECUTE; - - LL_PATH(basedir, r|w|c); - LL_PATH("/tmp", r|w|c); + rd = LANDLOCK_ACCESS_FS_READ_DIR, + rf = LANDLOCK_ACCESS_FS_READ_FILE, + w = LANDLOCK_ACCESS_FS_WRITE_FILE | + LANDLOCK_ACCESS_FS_TRUNCATE, + c = LANDLOCK_ACCESS_FS_MAKE_DIR | + LANDLOCK_ACCESS_FS_MAKE_REG | + LANDLOCK_ACCESS_FS_TRUNCATE | + LANDLOCK_ACCESS_FS_MAKE_SYM | + LANDLOCK_ACCESS_FS_REMOVE_DIR | + LANDLOCK_ACCESS_FS_REMOVE_FILE | + LANDLOCK_ACCESS_FS_REFER, + s = LANDLOCK_ACCESS_FS_MAKE_SOCK, + x = LANDLOCK_ACCESS_FS_EXECUTE; + + LL_PATH(basedir, rf|rd|w|c); + LL_PATH("/tmp", rf|rd|w|c); #ifndef WITHOUT_SHM - LL_PATH("/dev/shm", r|w|c); + LL_PATH("/dev/shm", rf|w|c ); #endif - LL_PATH("/etc/resolv.conf", r ); - LL_PATH("/etc/hosts", r ); - LL_PATH("/etc/ssl/openssl.cnf", r ); - LL_PATH("/etc/ssl/cert.pem", r ); - LL_PATH("/usr/share/zoneinfo", r ); + LL_PATH("/etc/resolv.conf", rf ); + LL_PATH("/etc/hosts", rf ); + LL_PATH("/etc/ssl/openssl.cnf", rf ); + LL_PATH("/etc/ssl/cert.pem", rf ); + LL_PATH("/usr/share/zoneinfo", rf ); if (*address == '/') LL_PATH(address, s);