]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
selftests/landlock: Fix readlink check
authorMickaël Salaün <mic@digikod.net>
Wed, 28 May 2025 14:44:25 +0000 (16:44 +0200)
committerMickaël Salaün <mic@digikod.net>
Thu, 19 Jun 2025 11:55:38 +0000 (13:55 +0200)
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>
tools/testing/selftests/landlock/audit.h

index 18a6014920b5f8f5733d58126dfab1fac710730c..b16986aa64427b5b1d11ed55bc91c8bdefc691f7 100644 (file)
@@ -403,11 +403,12 @@ static int audit_init_filter_exe(struct audit_filter *filter, const char *path)
        /* It is assume that there is not already filtering rules. */
        filter->record_type = AUDIT_EXE;
        if (!path) {
-               filter->exe_len = readlink("/proc/self/exe", filter->exe,
-                                          sizeof(filter->exe) - 1);
-               if (filter->exe_len < 0)
+               int ret = readlink("/proc/self/exe", filter->exe,
+                                  sizeof(filter->exe) - 1);
+               if (ret < 0)
                        return -errno;
 
+               filter->exe_len = ret;
                return 0;
        }