commit f625b7f

shtrophic  ·  2024-12-08 08:01:57 +0000 UTC
parent fb81452
don't try to make files directory-readable
1 files changed,  +22, -22
+22, -22
 1@@ -13,30 +13,30 @@ static
 2 LL_BEGIN(sbox_enter_linux_, const char* basedir, const char *address, int smail) {
 3 
 4     const unsigned long long
 5-        r = LANDLOCK_ACCESS_FS_READ_DIR    |
 6-            LANDLOCK_ACCESS_FS_READ_FILE,
 7-        w = LANDLOCK_ACCESS_FS_WRITE_FILE  |
 8-            LANDLOCK_ACCESS_FS_TRUNCATE,
 9-        c = LANDLOCK_ACCESS_FS_MAKE_DIR    |
10-            LANDLOCK_ACCESS_FS_MAKE_REG    |
11-            LANDLOCK_ACCESS_FS_TRUNCATE    |
12-            LANDLOCK_ACCESS_FS_MAKE_SYM    |
13-            LANDLOCK_ACCESS_FS_REMOVE_DIR  |
14-            LANDLOCK_ACCESS_FS_REMOVE_FILE |
15-            LANDLOCK_ACCESS_FS_REFER,
16-        s = LANDLOCK_ACCESS_FS_MAKE_SOCK,
17-        x = LANDLOCK_ACCESS_FS_EXECUTE;
18-
19-    LL_PATH(basedir,                r|w|c);
20-    LL_PATH("/tmp",                 r|w|c);
21+        rd = LANDLOCK_ACCESS_FS_READ_DIR,
22+        rf = LANDLOCK_ACCESS_FS_READ_FILE,
23+        w  = LANDLOCK_ACCESS_FS_WRITE_FILE  |
24+             LANDLOCK_ACCESS_FS_TRUNCATE,
25+        c  = LANDLOCK_ACCESS_FS_MAKE_DIR    |
26+             LANDLOCK_ACCESS_FS_MAKE_REG    |
27+             LANDLOCK_ACCESS_FS_TRUNCATE    |
28+             LANDLOCK_ACCESS_FS_MAKE_SYM    |
29+             LANDLOCK_ACCESS_FS_REMOVE_DIR  |
30+             LANDLOCK_ACCESS_FS_REMOVE_FILE |
31+             LANDLOCK_ACCESS_FS_REFER,
32+        s  = LANDLOCK_ACCESS_FS_MAKE_SOCK,
33+        x  = LANDLOCK_ACCESS_FS_EXECUTE;
34+
35+    LL_PATH(basedir,                rf|rd|w|c);
36+    LL_PATH("/tmp",                 rf|rd|w|c);
37 #ifndef WITHOUT_SHM
38-    LL_PATH("/dev/shm",             r|w|c);
39+    LL_PATH("/dev/shm",             rf|w|c   );
40 #endif
41-    LL_PATH("/etc/resolv.conf",     r    );
42-    LL_PATH("/etc/hosts",           r    );
43-    LL_PATH("/etc/ssl/openssl.cnf", r    );
44-    LL_PATH("/etc/ssl/cert.pem",    r    );
45-    LL_PATH("/usr/share/zoneinfo",  r    );
46+    LL_PATH("/etc/resolv.conf",     rf       );
47+    LL_PATH("/etc/hosts",           rf       );
48+    LL_PATH("/etc/ssl/openssl.cnf", rf       );
49+    LL_PATH("/etc/ssl/cert.pem",    rf       );
50+    LL_PATH("/usr/share/zoneinfo",  rf       );
51 
52     if (*address == '/')
53         LL_PATH(address, s);