Author: Armin Rigo <[email protected]>
Branch: py3.5-eintr-pep475
Changeset: r88873:de02c97af766
Date: 2016-12-04 11:39 +0100
http://bitbucket.org/pypy/pypy/changeset/de02c97af766/
Log: close fd's in case of error
diff --git a/pypy/module/posix/interp_posix.py
b/pypy/module/posix/interp_posix.py
--- a/pypy/module/posix/interp_posix.py
+++ b/pypy/module/posix/interp_posix.py
@@ -1302,11 +1302,16 @@
def openpty(space):
"Open a pseudo-terminal, returning open fd's for both master and slave
end."
+ master_fd = slave_fd = -1
try:
master_fd, slave_fd = os.openpty()
rposix.set_inheritable(master_fd, False)
rposix.set_inheritable(slave_fd, False)
except OSError as e:
+ if master_fd >= 0:
+ rposix.c_close(master_fd)
+ if slave_fd >= 0:
+ rposix.c_close(slave_fd)
raise wrap_oserror(space, e, eintr_retry=False)
return space.newtuple([space.wrap(master_fd), space.wrap(slave_fd)])
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit