mirror of https://github.com/python/cpython
gh-124213: Fix incorrect context manager use in in_systemd_nspawn_sync_suppressed() (#124892)
Fix the incorrect use of `os.open()` result as a context manager, while it is actually a numeric file descriptor. I have missed the problem, because in the original version the `os.open()` call would always fail, and I failed to test the final version in all possible scenarios properly.
This commit is contained in:
parent
c2ba931318
commit
8d7d257f6b
|
@ -2907,10 +2907,11 @@ def in_systemd_nspawn_sync_suppressed() -> bool:
|
|||
# trigger EINVAL. Otherwise, ENOENT will be given instead.
|
||||
import errno
|
||||
try:
|
||||
with os.open(__file__, os.O_RDONLY | os.O_SYNC):
|
||||
pass
|
||||
fd = os.open(__file__, os.O_RDONLY | os.O_SYNC)
|
||||
except OSError as err:
|
||||
if err.errno == errno.EINVAL:
|
||||
return True
|
||||
else:
|
||||
os.close(fd)
|
||||
|
||||
return False
|
||||
|
|
Loading…
Reference in New Issue