Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

selftests/landlock: Fix readlink check

The audit_init_filter_exe() helper incorrectly checks the readlink(2)
error because an unsigned integer is used to store the result. Use a
signed integer for this check.

Reported-by: Dan Carpenter <dan.carpenter@linaro.org>
Closes: https://lore.kernel.org/r/aDbFwyZ_fM-IO7sC@stanley.mountain
Fixes: 6a500b22971c ("selftests/landlock: Add tests for audit flags and domain IDs")
Reviewed-by: Günther Noack <gnoack@google.com>
Link: https://lore.kernel.org/r/20250528144426.1709063-1-mic@digikod.net
Signed-off-by: Mickaël Salaün <mic@digikod.net>

+4 -3
+4 -3
tools/testing/selftests/landlock/audit.h
··· 403 403 /* It is assume that there is not already filtering rules. */ 404 404 filter->record_type = AUDIT_EXE; 405 405 if (!path) { 406 - filter->exe_len = readlink("/proc/self/exe", filter->exe, 407 - sizeof(filter->exe) - 1); 408 - if (filter->exe_len < 0) 406 + int ret = readlink("/proc/self/exe", filter->exe, 407 + sizeof(filter->exe) - 1); 408 + if (ret < 0) 409 409 return -errno; 410 410 411 + filter->exe_len = ret; 411 412 return 0; 412 413 } 413 414