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.
|
# trigger EINVAL. Otherwise, ENOENT will be given instead.
|
||||||
import errno
|
import errno
|
||||||
try:
|
try:
|
||||||
with os.open(__file__, os.O_RDONLY | os.O_SYNC):
|
fd = os.open(__file__, os.O_RDONLY | os.O_SYNC)
|
||||||
pass
|
|
||||||
except OSError as err:
|
except OSError as err:
|
||||||
if err.errno == errno.EINVAL:
|
if err.errno == errno.EINVAL:
|
||||||
return True
|
return True
|
||||||
|
else:
|
||||||
|
os.close(fd)
|
||||||
|
|
||||||
return False
|
return False
|
||||||
|
|
Loading…
Reference in New Issue