]> git.ipfire.org Git - thirdparty/Python/cpython.git/commit
gh-125842: Fix `sys.exit(0xffff_ffff)` on Windows (#125896)
authorSam Gross <colesbury@gmail.com>
Thu, 24 Oct 2024 16:03:50 +0000 (12:03 -0400)
committerGitHub <noreply@github.com>
Thu, 24 Oct 2024 16:03:50 +0000 (12:03 -0400)
commitad6110a93ffa82cae71af6c78692de065d3871b5
treef0a94632be42d09167a811f655beb0d7c147b180
parente545ead66ce725aae6fb0ad5d733abe806c19750
gh-125842: Fix `sys.exit(0xffff_ffff)` on Windows (#125896)

On Windows, `long` is a signed 32-bit integer so it can't represent
`0xffff_ffff` without overflow. Windows exit codes are unsigned 32-bit
integers, so if a child process exits with `-1`, it will be represented
as `0xffff_ffff`.

Also fix a number of other possible cases where `_Py_HandleSystemExit`
could return with an exception set, leading to a `SystemError` (or
fatal error in debug builds) later on during shutdown.
Lib/test/test_sys.py
Misc/NEWS.d/next/Windows/2024-10-23-17-24-23.gh-issue-125842.m3EF9E.rst [new file with mode: 0644]
Python/pythonrun.c