Changed _bytesio.c to avoid comparing a signed with an unsigned value.
Added tests for overflow checks.
diff --git a/Lib/test/test_memoryio.py b/Lib/test/test_memoryio.py
index 1afc363..4604caf 100644
--- a/Lib/test/test_memoryio.py
+++ b/Lib/test/test_memoryio.py
@@ -7,6 +7,7 @@
 from test import test_support
 
 import io
+import sys
 
 try:
     import _bytesio
@@ -403,6 +404,19 @@
     class CBytesIOTest(PyBytesIOTest):
         ioclass = io.BytesIO
 
+        def test_overflow(self):
+            buf = self.buftype("a")
+            memio = self.ioclass()
+
+            memio.seek(sys.maxsize)
+            self.assertRaises(OverflowError, memio.seek, 1, 1)
+            # Ensure that the position has not been changed
+            self.assertEqual(memio.tell(), sys.maxsize)
+            self.assertEqual(memio.write(self.EOF), 0)
+            self.assertRaises(OverflowError, memio.write, buf)
+            self.assertEqual(memio.tell(), sys.maxsize)
+
+
 def test_main():
     tests = [PyBytesIOTest, PyStringIOTest]
     if has_c_implementation: