samples/landlock: Add support for LANDLOCK_ACCESS_FS_IOCTL_DEV
authorGünther Noack <gnoack@google.com>
Fri, 19 Apr 2024 16:11:19 +0000 (16:11 +0000)
committerMickaël Salaün <mic@digikod.net>
Mon, 13 May 2024 04:58:33 +0000 (06:58 +0200)
Add IOCTL support to the Landlock sample tool.

The IOCTL right is grouped with the read-write rights in the sample
tool, as some IOCTL requests provide features that mutate state.

Signed-off-by: Günther Noack <gnoack@google.com>
Link: https://lore.kernel.org/r/20240419161122.2023765-9-gnoack@google.com
Signed-off-by: Mickaël Salaün <mic@digikod.net>
samples/landlock/sandboxer.c

index 8b8ecd65c28c4205cf4a006685f4a5e5b302d31b..e8223c3e781ab85f9224c3bb416c7e2378e3a058 100644 (file)
@@ -81,7 +81,8 @@ static int parse_path(char *env_path, const char ***const path_list)
        LANDLOCK_ACCESS_FS_EXECUTE | \
        LANDLOCK_ACCESS_FS_WRITE_FILE | \
        LANDLOCK_ACCESS_FS_READ_FILE | \
-       LANDLOCK_ACCESS_FS_TRUNCATE)
+       LANDLOCK_ACCESS_FS_TRUNCATE | \
+       LANDLOCK_ACCESS_FS_IOCTL_DEV)
 
 /* clang-format on */
 
@@ -202,11 +203,12 @@ out_free_name:
        LANDLOCK_ACCESS_FS_MAKE_BLOCK | \
        LANDLOCK_ACCESS_FS_MAKE_SYM | \
        LANDLOCK_ACCESS_FS_REFER | \
-       LANDLOCK_ACCESS_FS_TRUNCATE)
+       LANDLOCK_ACCESS_FS_TRUNCATE | \
+       LANDLOCK_ACCESS_FS_IOCTL_DEV)
 
 /* clang-format on */
 
-#define LANDLOCK_ABI_LAST 4
+#define LANDLOCK_ABI_LAST 5
 
 int main(const int argc, char *const argv[], char *const *const envp)
 {
@@ -320,6 +322,11 @@ int main(const int argc, char *const argv[], char *const *const envp)
                ruleset_attr.handled_access_net &=
                        ~(LANDLOCK_ACCESS_NET_BIND_TCP |
                          LANDLOCK_ACCESS_NET_CONNECT_TCP);
+               __attribute__((fallthrough));
+       case 4:
+               /* Removes LANDLOCK_ACCESS_FS_IOCTL_DEV for ABI < 5 */
+               ruleset_attr.handled_access_fs &= ~LANDLOCK_ACCESS_FS_IOCTL_DEV;
+
                fprintf(stderr,
                        "Hint: You should update the running kernel "
                        "to leverage Landlock features "