Fix possible integer overflow in lchown and fchown functions.  For issue1747858.
diff --git a/Modules/posixmodule.c b/Modules/posixmodule.c
index 8956e93..76609ee 100644
--- a/Modules/posixmodule.c
+++ b/Modules/posixmodule.c
@@ -1910,9 +1910,10 @@
 static PyObject *
 posix_fchown(PyObject *self, PyObject *args)
 {
-	int fd, uid, gid;
+	int fd;
+	long uid, gid;
 	int res;
-	if (!PyArg_ParseTuple(args, "iii:chown", &fd, &uid, &gid))
+	if (!PyArg_ParseTuple(args, "ill:chown", &fd, &uid, &gid))
 		return NULL;
 	Py_BEGIN_ALLOW_THREADS
 	res = fchown(fd, (uid_t) uid, (gid_t) gid);
@@ -1933,9 +1934,9 @@
 posix_lchown(PyObject *self, PyObject *args)
 {
 	char *path = NULL;
-	int uid, gid;
+	long uid, gid;
 	int res;
-	if (!PyArg_ParseTuple(args, "etii:lchown",
+	if (!PyArg_ParseTuple(args, "etll:lchown",
 	                      Py_FileSystemDefaultEncoding, &path,
 	                      &uid, &gid))
 		return NULL;