[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