fs_bench expects openat() to be denied when Landlock is enabled, but
only treats a returned FD of 0 as success.  Any other valid FD falls
through to the errno check, which then reports a stale errno value.

Check for any non-negative FD instead.

Assisted-by: LLM
Signed-off-by: Günther Noack <[email protected]>
---
 tools/testing/selftests/landlock/fs_bench.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tools/testing/selftests/landlock/fs_bench.c 
b/tools/testing/selftests/landlock/fs_bench.c
index d13a88dcd1ed..78d1efcb2d20 100644
--- a/tools/testing/selftests/landlock/fs_bench.c
+++ b/tools/testing/selftests/landlock/fs_bench.c
@@ -189,7 +189,7 @@ int main(int argc, char *argv[])
                fd = openat(curr, "file.txt", O_CREAT | O_TRUNC | O_WRONLY,
                            0600);
                if (use_landlock) {
-                       if (fd == 0)
+                       if (fd >= 0)
                                errx(1, "openat succeeded, expected EACCES");
                        if (errno != EACCES)
                                err(1, "openat expected EACCES, but got");
-- 
2.56.0


Reply via email to