Issue #5677: Explicitly forbid write operations on read-only file objects,
and read operations on write-only file objects.  On Windows, the system C
library would return a bogus result; on Solaris, it was possible to crash
the interpreter.  Patch by Stefan Krah.
diff --git a/Include/fileobject.h b/Include/fileobject.h
index 77903be..83e9c25 100644
--- a/Include/fileobject.h
+++ b/Include/fileobject.h
@@ -28,6 +28,8 @@
 	PyObject *weakreflist; /* List of weak references */
 	int unlocked_count;	/* Num. currently running sections of code
 				   using f_fp with the GIL released. */
+	int readable;
+	int writable;
 } PyFileObject;
 
 PyAPI_DATA(PyTypeObject) PyFile_Type;