diff options
author | Michał Górny <mgorny@gentoo.org> | 2024-10-02 14:31:42 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-10-02 14:31:42 (GMT) |
commit | 8d7d257f6bcc76892a084b169cc9efa414a9e4c6 (patch) | |
tree | dd0ff5891bd7ca53764b3fb6ca0846b225de3425 /Lib/test/support | |
parent | c2ba931318280796a6dcc33d1a5c5c02ad4d035b (diff) | |
download | cpython-8d7d257f6bcc76892a084b169cc9efa414a9e4c6.zip cpython-8d7d257f6bcc76892a084b169cc9efa414a9e4c6.tar.gz cpython-8d7d257f6bcc76892a084b169cc9efa414a9e4c6.tar.bz2 |
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.
Diffstat (limited to 'Lib/test/support')
-rw-r--r-- | Lib/test/support/__init__.py | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/Lib/test/support/__init__.py b/Lib/test/support/__init__.py index 99cb10f..1a44cc6 100644 --- a/Lib/test/support/__init__.py +++ b/Lib/test/support/__init__.py @@ -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 |