[LTP] [PATCH v2] Add listxattr04 reproducer

Cyril Hrubis chrubis@suse.cz
Mon Jul 7 11:46:29 CEST 2025


Hi!
> > +		tst_res(TFAIL, "listxattr() failed to read attributes length: ERANGE");
> > +		return;
> Why ERANGE is Checked Separately?
> Such as tst_res(TFAIL | TERRNO, "listxattr() error") will also report
> errno.

Because with ERANGE we reproduced the bug and return TFAIL while with
any other errno we report TBROK.

> > +	}
> > +
> > +	tst_res(TPASS, "listxattr() correctly read attributes length");
> > +}
> > +
> > +static void run(void)
> > +{
> > +	int size;
> > +
> > +	size = listxattr(TEST_FILE, NULL, 0);
> > +	if (size == -1)
> > +		tst_brk(TBROK | TERRNO, "listxattr() error");
> > +
> > +	verify_xattr(size);
> > +}
> > +
> > +static int selinux_enabled(void)
> > +{
> > +	uint32_t lsm_num;
> > +	uint64_t ids[32];
> > +	uint32_t page_size;
> > +	int available = 0;
> > +
> > +	page_size = SAFE_SYSCONF(_SC_PAGESIZE);
> > +
> > +	lsm_num = lsm_list_modules(ids, &page_size, 0);
> > +	if (!lsm_num)
> > +		return 0;
> > +
> > +	for (uint32_t i = 0; i < lsm_num; i++) {
> > +		if (ids[i] == LSM_ID_SELINUX) {
> > +			available = 1;
> > +			break;
> > +		}
> > +	}
> > +
> > +	return available;
> > +}
> > +
> > +static void setup(void)
> > +{
> > +	int res;
> > +
> > +	if (!selinux_enabled())
> Mabye we can use is_selinux_enabled instead of self build function?

That mean that we have to compile the test again one more library. I
would rather add tst_selinux_enabled() into the test library. We already
have tst_selinux_enforcing() there anyways. That should be as easy as
reading another file in /sys/fs/selinux/.

-- 
Cyril Hrubis
chrubis@suse.cz


More information about the ltp mailing list