[3.6] bpo-30065: Fixed arguments validation in _posixsubprocess.fork_exec(). (GH-1110) (#1186)

(cherry picked from commit 66bffd1)
diff --git a/Lib/subprocess.py b/Lib/subprocess.py
index 0db6571..1721269 100644
--- a/Lib/subprocess.py
+++ b/Lib/subprocess.py
@@ -1253,7 +1253,8 @@
                     fds_to_keep.add(errpipe_write)
                     self.pid = _posixsubprocess.fork_exec(
                             args, executable_list,
-                            close_fds, sorted(fds_to_keep), cwd, env_list,
+                            close_fds, tuple(sorted(map(int, fds_to_keep))),
+                            cwd, env_list,
                             p2cread, p2cwrite, c2pread, c2pwrite,
                             errread, errwrite,
                             errpipe_read, errpipe_write,