From cce07ea5a1cf6568588a7ea5a07ed94c152f225c Mon Sep 17 00:00:00 2001 From: Jeremy Kloth Date: Wed, 23 Mar 2022 11:30:03 -0600 Subject: [PATCH] bpo-46716: Handle negative timeouts for wait on Windows --- Lib/subprocess.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Lib/subprocess.py b/Lib/subprocess.py index ad08339b25ddc3..f58f4626f6649a 100644 --- a/Lib/subprocess.py +++ b/Lib/subprocess.py @@ -1483,8 +1483,12 @@ def _wait(self, timeout): """Internal implementation of wait() on Windows.""" if timeout is None: timeout_millis = _winapi.INFINITE + elif timeout <= 0: + timeout_millis = 0 else: timeout_millis = int(timeout * 1000) + if timeout_millis >= _winapi.INFINITE: + raise OverflowError('timeout too large to convert to C DWORD') if self.returncode is None: # API note: Returns immediately if timeout_millis == 0. result = _winapi.WaitForSingleObject(self._handle,