* [LTP] [PATCH] landlock04: Fix false TFAIL in _test_truncate() deny path
@ 2026-08-24 10:15 Avinesh Kumar via ltp
2026-08-24 10:38 ` [LTP] " linuxtestproject.agent
0 siblings, 1 reply; 6+ messages in thread
From: Avinesh Kumar via ltp @ 2026-08-24 10:15 UTC (permalink / raw)
To: ltp
From: Avinesh Kumar <avinesh.kumar@suse.com>
commit 8643b01a68cf converted an intentionally-unchecked open() call
(used only to get an fd for the ftruncate() sub-test) into
TST_EXP_FD_OR_FAIL(), wrongly asserting it must fail with EACCES on
the deny path. Its outcome depends on other granted rights and isn't
guaranteed, causing a false TFAIL when it succeeded.
landlock_tester.h:257: TFAIL: open(FILE_TRUNCATE, O_WRONLY, PERM_MODE) invalid retval 4: SUCCESS (0)
Restore the unchecked open() on the deny path, keep SAFE_OPEN() on the
pass path. Also fix SAFE_CLOSE(TST_RET) to SAFE_CLOSE(fd) for consistency.
Fixes: 8643b01a68cf ("tree: Use TST_EXP_PASS_OR_FAIL() and TST_EXP_FD_OR_FAIL()")
Signed-off-by: Avinesh Kumar <avinesh.kumar@suse.com>
---
testcases/kernel/syscalls/landlock/landlock_tester.h | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/testcases/kernel/syscalls/landlock/landlock_tester.h b/testcases/kernel/syscalls/landlock/landlock_tester.h
index f44721245144..e93f970d87c3 100644
--- a/testcases/kernel/syscalls/landlock/landlock_tester.h
+++ b/testcases/kernel/syscalls/landlock/landlock_tester.h
@@ -254,7 +254,8 @@ static void _test_truncate(const int exp_err)
tst_res(TINFO, "Test truncating file");
TST_EXP_PASS_OR_FAIL(truncate(FILE_TRUNCATE, 10), exp_err);
- fd = TST_EXP_FD_OR_FAIL(open(FILE_TRUNCATE, O_WRONLY, PERM_MODE), exp_err);
+ fd = exp_err ? open(FILE_TRUNCATE, O_WRONLY, PERM_MODE)
+ : SAFE_OPEN(FILE_TRUNCATE, O_WRONLY, PERM_MODE);
if (fd != -1) {
TST_EXP_PASS_OR_FAIL(ftruncate(fd, 10), exp_err);
SAFE_CLOSE(fd);
@@ -262,7 +263,7 @@ static void _test_truncate(const int exp_err)
fd = TST_EXP_FD_OR_FAIL(open(FILE_TRUNCATE, O_WRONLY | O_TRUNC, PERM_MODE), exp_err);
if (fd != -1)
- SAFE_CLOSE(TST_RET);
+ SAFE_CLOSE(fd);
}
static void tester_run_fs_rules(const int rules, const int result)
--
2.55.0
--
Mailing list info: https://lists.linux.it/listinfo/ltp
^ permalink raw reply related [flat|nested] 6+ messages in thread* Re: [LTP] landlock04: Fix false TFAIL in _test_truncate() deny path
2026-08-24 10:15 [LTP] [PATCH] landlock04: Fix false TFAIL in _test_truncate() deny path Avinesh Kumar via ltp
@ 2026-08-24 10:38 ` linuxtestproject.agent
2026-08-24 13:57 ` [LTP] [PATCH v2] " Avinesh Kumar via ltp
0 siblings, 1 reply; 6+ messages in thread
From: linuxtestproject.agent @ 2026-08-24 10:38 UTC (permalink / raw)
To: Avinesh Kumar; +Cc: ltp
Hi Avinesh,
On Mon, Aug 24, 2026, Avinesh Kumar wrote:
> landlock04: Fix false TFAIL in _test_truncate() deny path
> + fd = exp_err ? open(FILE_TRUNCATE, O_WRONLY, PERM_MODE)
> + : SAFE_OPEN(FILE_TRUNCATE, O_WRONLY, PERM_MODE);
> if (fd != -1) {
Could the deny branch report open() errors other than EACCES? EACCES is an
expected reason to skip ftruncate() when write access is denied, but open(2)
can also fail with EMFILE, ENFILE, or ENOMEM. Those failures currently take
the same fd == -1 path, silently skip the ftruncate() assertion, and let the
variant pass without testing it.
Verdict - Needs revision
---
Note:
The agent can sometimes produce false positives although often its
findings are genuine. If you find issues with the review, please
comment this email or ignore the suggestions.
Regards,
LTP AI Reviewer
--
Mailing list info: https://lists.linux.it/listinfo/ltp
^ permalink raw reply [flat|nested] 6+ messages in thread* [LTP] [PATCH v2] landlock04: Fix false TFAIL in _test_truncate() deny path
2026-08-24 10:38 ` [LTP] " linuxtestproject.agent
@ 2026-08-24 13:57 ` Avinesh Kumar via ltp
2026-08-24 14:04 ` Andrea Cervesato via ltp
` (2 more replies)
0 siblings, 3 replies; 6+ messages in thread
From: Avinesh Kumar via ltp @ 2026-08-24 13:57 UTC (permalink / raw)
To: ltp
From: Avinesh Kumar <avinesh.kumar@suse.com>
commit 8643b01a68cf converted an intentionally-unchecked open() call
(used only to get an fd for the ftruncate() sub-test) into
TST_EXP_FD_OR_FAIL(), wrongly asserting it must fail with EACCES on
the deny path. Its outcome depends on other granted rights and isn't
guaranteed, causing a false TFAIL when it succeeded.
landlock_tester.h:257: TFAIL: open(FILE_TRUNCATE, O_WRONLY, PERM_MODE) invalid retval 4: SUCCESS (0)
Restore the unchecked open() on the deny path, keep SAFE_OPEN() on the
pass path, and only treat EACCES as an expected reason to skip the
ftruncate() sub-test.
Also fix SAFE_CLOSE(TST_RET) to SAFE_CLOSE(fd) for consistency.
Fixes: 8643b01a68cf ("tree: Use TST_EXP_PASS_OR_FAIL() and TST_EXP_FD_OR_FAIL()")
Signed-off-by: Avinesh Kumar <avinesh.kumar@suse.com>
---
testcases/kernel/syscalls/landlock/landlock_tester.h | 11 +++++++++--
1 file changed, 9 insertions(+), 2 deletions(-)
diff --git a/testcases/kernel/syscalls/landlock/landlock_tester.h b/testcases/kernel/syscalls/landlock/landlock_tester.h
index f44721245144..904e43d7f930 100644
--- a/testcases/kernel/syscalls/landlock/landlock_tester.h
+++ b/testcases/kernel/syscalls/landlock/landlock_tester.h
@@ -254,7 +254,14 @@ static void _test_truncate(const int exp_err)
tst_res(TINFO, "Test truncating file");
TST_EXP_PASS_OR_FAIL(truncate(FILE_TRUNCATE, 10), exp_err);
- fd = TST_EXP_FD_OR_FAIL(open(FILE_TRUNCATE, O_WRONLY, PERM_MODE), exp_err);
+
+ if (!exp_err) {
+ fd = SAFE_OPEN(FILE_TRUNCATE, O_WRONLY, PERM_MODE);
+ } else {
+ fd = open(FILE_TRUNCATE, O_WRONLY, PERM_MODE);
+ if (fd == -1 && errno != EACCES)
+ tst_res(TFAIL | TERRNO, "open(%s, O_WRONLY) failed unexpectedly", FILE_TRUNCATE);
+ }
if (fd != -1) {
TST_EXP_PASS_OR_FAIL(ftruncate(fd, 10), exp_err);
SAFE_CLOSE(fd);
@@ -262,7 +269,7 @@ static void _test_truncate(const int exp_err)
fd = TST_EXP_FD_OR_FAIL(open(FILE_TRUNCATE, O_WRONLY | O_TRUNC, PERM_MODE), exp_err);
if (fd != -1)
- SAFE_CLOSE(TST_RET);
+ SAFE_CLOSE(fd);
}
static void tester_run_fs_rules(const int rules, const int result)
--
2.55.0
--
Mailing list info: https://lists.linux.it/listinfo/ltp
^ permalink raw reply related [flat|nested] 6+ messages in thread* Re: [LTP] [PATCH v2] landlock04: Fix false TFAIL in _test_truncate() deny path
2026-08-24 13:57 ` [LTP] [PATCH v2] " Avinesh Kumar via ltp
@ 2026-08-24 14:04 ` Andrea Cervesato via ltp
2026-08-24 14:42 ` [LTP] " linuxtestproject.agent
2026-08-25 4:38 ` [LTP] [PATCH v2] " Petr Vorel
2 siblings, 0 replies; 6+ messages in thread
From: Andrea Cervesato via ltp @ 2026-08-24 14:04 UTC (permalink / raw)
To: Avinesh Kumar; +Cc: ltp
Reviewed-by: Andrea Cervesato <andrea.cervesato@suse.com>
--
Andrea Cervesato
SUSE QE Automation Engineer Linux
andrea.cervesato@suse.com
--
Mailing list info: https://lists.linux.it/listinfo/ltp
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [LTP] landlock04: Fix false TFAIL in _test_truncate() deny path
2026-08-24 13:57 ` [LTP] [PATCH v2] " Avinesh Kumar via ltp
2026-08-24 14:04 ` Andrea Cervesato via ltp
@ 2026-08-24 14:42 ` linuxtestproject.agent
2026-08-25 4:38 ` [LTP] [PATCH v2] " Petr Vorel
2 siblings, 0 replies; 6+ messages in thread
From: linuxtestproject.agent @ 2026-08-24 14:42 UTC (permalink / raw)
To: Avinesh Kumar; +Cc: ltp
Hi Avinesh,
On Mon, Aug 24, 2026, Avinesh Kumar wrote:
> landlock04: Fix false TFAIL in _test_truncate() deny path
Verdict - Reviewed
---
Note:
The agent can sometimes produce false positives although often its
findings are genuine. If you find issues with the review, please
comment this email or ignore the suggestions.
Regards,
LTP AI Reviewer
--
Mailing list info: https://lists.linux.it/listinfo/ltp
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [LTP] [PATCH v2] landlock04: Fix false TFAIL in _test_truncate() deny path
2026-08-24 13:57 ` [LTP] [PATCH v2] " Avinesh Kumar via ltp
2026-08-24 14:04 ` Andrea Cervesato via ltp
2026-08-24 14:42 ` [LTP] " linuxtestproject.agent
@ 2026-08-25 4:38 ` Petr Vorel
2 siblings, 0 replies; 6+ messages in thread
From: Petr Vorel @ 2026-08-25 4:38 UTC (permalink / raw)
To: Avinesh Kumar; +Cc: ltp
Hi Avinesh,
Thanks for the fix, merged!
I'm sorry for introducing the regression (I tested whole landlock part, but
obviously wrongly when this one slipped in).
...
> TST_EXP_PASS_OR_FAIL(truncate(FILE_TRUNCATE, 10), exp_err);
> - fd = TST_EXP_FD_OR_FAIL(open(FILE_TRUNCATE, O_WRONLY, PERM_MODE), exp_err);
> +
> + if (!exp_err) {
> + fd = SAFE_OPEN(FILE_TRUNCATE, O_WRONLY, PERM_MODE);
> + } else {
> + fd = open(FILE_TRUNCATE, O_WRONLY, PERM_MODE);
> + if (fd == -1 && errno != EACCES)
> + tst_res(TFAIL | TERRNO, "open(%s, O_WRONLY) failed unexpectedly", FILE_TRUNCATE);
nit: there still could have been TST_EXP_FD_OR_FAIL() for else part:
fd = TST_EXP_FD_OR_FAIL(open(FILE_TRUNCATE, O_WRONLY, PERM_MODE), exp_err);
I personally prefer these shortening macros, but maybe they aren't that much
readable when others don't use it. Therefore merged as is.
Kind regards,
Petr
> + }
> if (fd != -1) {
> TST_EXP_PASS_OR_FAIL(ftruncate(fd, 10), exp_err);
> SAFE_CLOSE(fd);
> @@ -262,7 +269,7 @@ static void _test_truncate(const int exp_err)
> fd = TST_EXP_FD_OR_FAIL(open(FILE_TRUNCATE, O_WRONLY | O_TRUNC, PERM_MODE), exp_err);
> if (fd != -1)
> - SAFE_CLOSE(TST_RET);
> + SAFE_CLOSE(fd);
> }
--
Mailing list info: https://lists.linux.it/listinfo/ltp
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2026-08-25 4:38 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-08-24 10:15 [LTP] [PATCH] landlock04: Fix false TFAIL in _test_truncate() deny path Avinesh Kumar via ltp
2026-08-24 10:38 ` [LTP] " linuxtestproject.agent
2026-08-24 13:57 ` [LTP] [PATCH v2] " Avinesh Kumar via ltp
2026-08-24 14:04 ` Andrea Cervesato via ltp
2026-08-24 14:42 ` [LTP] " linuxtestproject.agent
2026-08-25 4:38 ` [LTP] [PATCH v2] " Petr Vorel
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox