diff --git a/Lib/subprocess.py b/Lib/subprocess.py index 20db7747d5db13..78c892f2094e7f 100644 --- a/Lib/subprocess.py +++ b/Lib/subprocess.py @@ -1586,8 +1586,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,