[LTP] [PATCH v4 7/7] Add lsm_set_self_attr01 test

Petr Vorel pvorel@suse.cz
Thu Jun 5 10:18:01 CEST 2025


> Hi Andrea, all,

> > Verify that lsm_set_self_attr syscall is raising errors when invalid
> > data is provided.

> ...
> > diff --git a/testcases/kernel/syscalls/lsm/lsm_set_self_attr01.c b/testcases/kernel/syscalls/lsm/lsm_set_self_attr01.c
> > new file mode 100644
> > index 0000000000000000000000000000000000000000..caccdda7ecf2edaac1fa8e2dc2ccdd0aff020804
> > --- /dev/null
> > +++ b/testcases/kernel/syscalls/lsm/lsm_set_self_attr01.c
> > @@ -0,0 +1,110 @@
> > +// SPDX-License-Identifier: GPL-2.0-or-later
> > +/*
> > + * Copyright (C) 2024 SUSE LLC Andrea Cervesato <andrea.cervesato@suse.com>
> > + */
> > +
> > +/*\
> > + * Verify that lsm_set_self_attr syscall is raising errors when invalid data is
> > + * provided.
> > + */
> > +
> > +#include "lsm_common.h"
> > +
> > +static struct lsm_ctx *ctx;
> > +static struct lsm_ctx *ctx_orig;
> > +static struct lsm_ctx *ctx_null;
> > +static uint32_t ctx_size;
> > +static uint32_t ctx_size_small;
> > +static uint32_t ctx_size_big;
> > +static uint32_t page_size;
> > +
> > +static struct tcase {
> > +	uint32_t attr;
> > +	struct lsm_ctx **ctx;
> > +	uint32_t *size;
> > +	uint32_t flags;
> > +	int exp_errno;
> > +	char *msg;
> > +} tcases[] = {
> > +	{
> > +		.attr = LSM_ATTR_CURRENT,
> > +		.ctx = &ctx_null,
> > +		.size = &ctx_size,
> > +		.exp_errno = EFAULT,
> > +		.msg = "ctx is NULL",
> > +	},
> > +	{
> > +		.attr = LSM_ATTR_CURRENT,
> > +		.ctx = &ctx,
> > +		.size = &ctx_size_small,
> > +		.exp_errno = EINVAL,
> > +		.msg = "size is too small",
> > +	},
> > +	{
> > +		.attr = LSM_ATTR_CURRENT,
> > +		.ctx = &ctx,
> > +		.size = &ctx_size_big,
> > +		.exp_errno = E2BIG,
> > +		.msg = "size is too big",
> > +	},
> > +	{
> > +		.attr = LSM_ATTR_CURRENT,
> > +		.ctx = &ctx,
> > +		.size = &ctx_size,
> > +		.flags = 1,
> > +		.exp_errno = EINVAL,
> > +		.msg = "flags must be zero",
> > +	},
> > +	{
> > +		.attr = LSM_ATTR_CURRENT | LSM_ATTR_EXEC,
> > +		.ctx = &ctx,
> > +		.size = &ctx_size,
> > +		.exp_errno = EINVAL,
> > +		.msg = "attr is overset",

> FYI The test fails on this check on current Tumbleweed with new
> 6.15.0-1-default. It worked on 6.14.

> Looking at 6.15 landlock related changes (added Landlock audit support and
> Landlock signal scope fixes) test might needs to be updated.
> https://kernelnewbies.org/Linux_6.15#Security

@Mickaël @Günther I'm sorry, replying to wrong people. This is not a landlock
related, the syscall is lsm_set_self_attr().

Kind regards,
Petr

> @Andrea could you please have a look?

> Kind regards,
> Petr


More information about the ltp mailing list