Unverified Commit cd13738d authored by Günther Noack's avatar Günther Noack Committed by Mickaël Salaün
Browse files

samples/landlock: Add support for LANDLOCK_ACCESS_FS_IOCTL_DEV



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: default avatarGünther Noack <gnoack@google.com>
Link: https://lore.kernel.org/r/20240419161122.2023765-9-gnoack@google.com


Signed-off-by: default avatarMickaël Salaün <mic@digikod.net>
parent bce605e0
Loading
Loading
Loading
Loading
+10 −3
Original line number Diff line number Diff line
@@ -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 @@ static int populate_ruleset_net(const char *const env_var, const int ruleset_fd,
	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 "