[LTP] [PATCH v2] unshare03: set nr_open with sizeof(long)*8

Li Wang liwang@redhat.com
Fri Apr 11 05:09:45 CEST 2025


On Wed, Apr 9, 2025 at 3:50 PM lufei <lufei@uniontech.com> wrote:

> Set nr_open with sizeof(long)*8 to trigger EMFILE, instead of reading
> number of filedescriptors limit.
>

Any new changes in Linux that have made the previous way not work now?



>
> 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
>
>
> --
> Mailing list info: https://lists.linux.it/listinfo/ltp
>
>

-- 
Regards,
Li Wang


More information about the ltp mailing list