403Webshell
Server IP : 121.121.20.254  /  Your IP : 216.73.216.202
Web Server : Microsoft-IIS/10.0
System : Windows NT WEB-SERVER 10.0 build 20348 (Windows Server 2022) AMD64
User : IUSR ( 0)
PHP Version : 8.3.28
Disable Function : NONE
MySQL : ON  |  cURL : ON  |  WGET : OFF  |  Perl : OFF  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /Python314/Lib/test/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /Python314/Lib/test/mp_preload_large_sysargv.py
# gh-144503: Test that the forkserver can start when the parent process has
# a very large sys.argv.  Prior to the fix, sys.argv was repr'd into the
# forkserver ``-c`` command string which could exceed the OS limit on the
# length of a single argv element (MAX_ARG_STRLEN on Linux, ~128 KiB),
# causing posix_spawn to fail and the parent to see a BrokenPipeError.

import multiprocessing
import sys

EXPECTED_LEN = 5002  # argv[0] + 5000 padding entries + sentinel


def fun():
    print(f"worker:{len(sys.argv)}:{sys.argv[-1]}")


if __name__ == "__main__":
    # Inflate sys.argv well past 128 KiB before the forkserver is started.
    sys.argv[1:] = ["x" * 50] * 5000 + ["sentinel"]
    assert len(sys.argv) == EXPECTED_LEN

    ctx = multiprocessing.get_context("forkserver")
    p = ctx.Process(target=fun)
    p.start()
    p.join()
    sys.exit(p.exitcode)
else:
    # This branch runs when the forkserver preloads this module as
    # __mp_main__; confirm the large argv was propagated intact.
    print(f"preload:{len(sys.argv)}:{sys.argv[-1]}")

Youez - 2016 - github.com/yon3zu
LinuXploit