[LTP] [PATCH v3] unshare03: set nr_open with sizeof(long)*8
lufei
lufei@uniontech.com
Fri Apr 11 11:30:49 CEST 2025
dup2(2, nr_open+64) may cause ENOMEM error, which makes the testcase
BROKEN. Change to dup2(2, sizeof(long)*8 +1) and set nr_open to sizeof(long)*8
Signed-off-by: lufei <lufei@uniontech.com>
---
testcases/kernel/syscalls/unshare/unshare03.c | 23 ++-----------------
1 file changed, 2 insertions(+), 21 deletions(-)
diff --git a/testcases/kernel/syscalls/unshare/unshare03.c b/testcases/kernel/syscalls/unshare/unshare03.c
index 7c5e71c4e..c3b98930d 100644
--- a/testcases/kernel/syscalls/unshare/unshare03.c
+++ b/testcases/kernel/syscalls/unshare/unshare03.c
@@ -17,44 +17,25 @@
#include "lapi/sched.h"
#define FS_NR_OPEN "/proc/sys/fs/nr_open"
-#define NR_OPEN_LIMIT 1024
-#define NR_OPEN_DUP 64
#ifdef HAVE_UNSHARE
static void run(void)
{
- int nr_open;
- int nr_limit;
- struct rlimit rlimit;
struct tst_clone_args args = {
.flags = CLONE_FILES,
.exit_signal = SIGCHLD,
};
- SAFE_FILE_SCANF(FS_NR_OPEN, "%d", &nr_open);
- tst_res(TDEBUG, "Maximum number of file descriptors: %d", nr_open);
+ int nr_open = sizeof(long) * 8;
- nr_limit = nr_open + NR_OPEN_LIMIT;
- SAFE_FILE_PRINTF(FS_NR_OPEN, "%d", nr_limit);
-
- SAFE_GETRLIMIT(RLIMIT_NOFILE, &rlimit);
-
- rlimit.rlim_cur = nr_limit;
- rlimit.rlim_max = nr_limit;
-
- SAFE_SETRLIMIT(RLIMIT_NOFILE, &rlimit);
- tst_res(TDEBUG, "Set new maximum number of file descriptors to : %d",
- nr_limit);
-
- SAFE_DUP2(2, nr_open + NR_OPEN_DUP);
+ SAFE_DUP2(2, nr_open + 1);
if (!SAFE_CLONE(&args)) {
SAFE_FILE_PRINTF(FS_NR_OPEN, "%d", nr_open);
TST_EXP_FAIL(unshare(CLONE_FILES), EMFILE);
exit(0);
}
-
}
static void setup(void)
--
2.39.3
More information about the ltp
mailing list