http://bugs.python.org/issue5552
Return None rather than raise an exception if os.device_error is given an invalid file descriptor.
diff --git a/Modules/posixmodule.c b/Modules/posixmodule.c
index 4731b81..1d1e299 100644
--- a/Modules/posixmodule.c
+++ b/Modules/posixmodule.c
@@ -6830,9 +6830,7 @@
int fd;
if (!PyArg_ParseTuple(args, "i:device_encoding", &fd))
return NULL;
- if (!_PyVerify_fd(fd))
- return posix_error();
- if (!isatty(fd)) {
+ if (!_PyVerify_fd(fd) || !isatty(fd)) {
Py_INCREF(Py_None);
return Py_None;
}