diff -u -r ../Python-3.5.1/Python/fileutils.c ./Python/fileutils.c --- ../Python-3.5.1/Python/fileutils.c 2015-12-06 20:39:11.000000000 -0500 +++ ./Python/fileutils.c 2016-05-18 19:46:49.466741203 -0400 @@ -856,7 +856,7 @@ return 0; } - if (errno != ENOTTY) { + if (errno != ENOTTY && errno != EACCES) { if (raise) PyErr_SetFromErrno(PyExc_OSError); return -1; @@ -865,7 +865,9 @@ /* Issue #22258: Here, ENOTTY means "Inappropriate ioctl for device". The ioctl is declared but not supported by the kernel. Remember that ioctl() doesn't work. It is the case on - Illumos-based OS for example. */ + Illumos-based OS for example. + EACCES may be the result of an SELinux policy disabling + ioctl on sockets. This is the case on Android. */ ioctl_works = 0; } /* fallback to fcntl() if ioctl() does not work */