Plug another leak, and finally add a test for #1174606 (read() from /dev/zero).
The leak was the reason my previous attempts at testing failed...
diff --git a/Modules/_fileio.c b/Modules/_fileio.c
index c3124db..c0f5c90 100644
--- a/Modules/_fileio.c
+++ b/Modules/_fileio.c
@@ -543,6 +543,7 @@
 			PyErr_SetString(PyExc_OverflowError,
 				"unbounded read returned more bytes "
 				"than a Python string can hold ");
+			Py_DECREF(result);
 			return NULL;
 		}