[LTP] [PATCH v3 09/11] Add landlock04 test

Andrea Cervesato andrea.cervesato@suse.com
Wed Jul 24 12:41:34 CEST 2024


Hi Petr,

I honestly have no idea why it fails on that machine. All the landlock 
features we are using are there since version 1 and this test should 
work from kernel 5.13, so EINVAL is not justified to that. The 
exable_exec_libs is correctly guessing the path of the libc and that is 
also correct.

Andrea

On 7/16/24 19:27, Petr Vorel wrote:
> Hi Andrea,
>
> ...
>> +static void enable_exec_libs(const int ruleset_fd)
>> +{
>> +	FILE *fp;
>> +	char line[1024];
>> +	char path[PATH_MAX];
>> +	char dependency[8][PATH_MAX];
>> +	int count = 0;
>> +	int duplicate = 0;
>> +
>> +	fp = SAFE_FOPEN("/proc/self/maps", "r");
>> +
>> +	while (fgets(line, sizeof(line), fp)) {
>> +		if (strstr(line, ".so") == NULL)
>> +			continue;
>> +
>> +		SAFE_SSCANF(line, "%*x-%*x %*s %*x %*s %*d %s", path);
>> +
>> +		for (int i = 0; i < count; i++) {
>> +			if (strcmp(path, dependency[i]) == 0) {
>> +				duplicate = 1;
>> +				break;
>> +			}
>> +		}
>> +
>> +		if (duplicate) {
>> +			duplicate = 0;
>> +			continue;
>> +		}
>> +
>> +		strncpy(dependency[count], path, PATH_MAX);
>> +		count++;
>> +
>> +		tst_res(TINFO, "Enable read/exec permissions for %s", path);
>> +
>> +		path_beneath_attr->allowed_access =
>> +			LANDLOCK_ACCESS_FS_READ_FILE |
>> +			LANDLOCK_ACCESS_FS_EXECUTE;
>> +		path_beneath_attr->parent_fd = SAFE_OPEN(path, O_PATH | O_CLOEXEC);
>> +
>> +		SAFE_LANDLOCK_ADD_RULE(
>> +			ruleset_fd,
>> +			LANDLOCK_RULE_PATH_BENEATH,
>> +			path_beneath_attr,
>> +			0);
> Unfortunately, on 6.6.15-amd64 kernel (random Debian machine) it fails (after
> fresh boot) with:
>
> ...
> tst_supported_fs_types.c:97: TINFO: Kernel supports tmpfs
> tst_supported_fs_types.c:49: TINFO: mkfs is not needed for tmpfs
> tst_test.c:1746: TINFO: === Testing on ext2 ===
> tst_test.c:1111: TINFO: Formatting /dev/loop1 with ext2 opts='' extra opts=''
> mke2fs 1.47.0 (5-Feb-2023)
> tst_test.c:1123: TINFO: Mounting /dev/loop1 to /tmp/LTP_lant6WbKJ/sandbox fstyp=ext2 flags=0
> landlock_common.h:30: TINFO: Landlock ABI v3
> landlock04.c:151: TINFO: Testing LANDLOCK_ACCESS_FS_EXECUTE
> landlock04.c:123: TINFO: Enable read/exec permissions for /usr/lib/i386-linux-gnu/libc.so.6
> landlock04.c:131: TBROK: landlock_add_rule(3, 1, 0xf7f13ff4, 0): EINVAL (22)
> tst_test.c:1746: TINFO: === Testing on ext3 ===
>
> It works on 6.10.0-rc7-3.g92abc10-default (Tumbleweed), 6.9.8-amd64 (Debian).
>
> Any hint, what could be wrong?
>
> Kind regards,
> Petr
>
>> +
>> +		SAFE_CLOSE(path_beneath_attr->parent_fd);
>> +	}
>> +
>> +	SAFE_FCLOSE(fp);
>> +}




More information about the ltp mailing list