Check error return from _parse_off_t(), and remove cruft from the 2->3 transition.
diff --git a/Modules/posixmodule.c b/Modules/posixmodule.c
index 077343e..985a01e 100644
--- a/Modules/posixmodule.c
+++ b/Modules/posixmodule.c
@@ -369,8 +369,7 @@
 #if !defined(HAVE_LARGEFILE_SUPPORT)
     *((off_t*)addr) = PyLong_AsLong(arg);
 #else
-    *((off_t*)addr) = PyLong_Check(arg) ? PyLong_AsLongLong(arg)
-            : PyLong_AsLong(arg);
+    *((off_t*)addr) = PyLong_AsLongLong(arg);
 #endif
     if (PyErr_Occurred())
         return 0;
@@ -5772,8 +5771,7 @@
 #if !defined(HAVE_LARGEFILE_SUPPORT)
     pos = PyLong_AsLong(posobj);
 #else
-    pos = PyLong_Check(posobj) ?
-        PyLong_AsLongLong(posobj) : PyLong_AsLong(posobj);
+    pos = PyLong_AsLongLong(posobj);
 #endif
     if (PyErr_Occurred())
         return NULL;
@@ -6030,7 +6028,8 @@
         return Py_BuildValue("nO", ret, Py_None);
     }
 #endif
-    _parse_off_t(offobj, &offset);
+    if (!_parse_off_t(offobj, &offset))
+        return NULL;
     Py_BEGIN_ALLOW_THREADS
     ret = sendfile(out, in, &offset, count);
     Py_END_ALLOW_THREADS