Buffer objects would return the read or write buffer for a wrapped object when
the char buffer was requested.  Now it actually returns the char buffer if
available or raises a TypeError if it isn't (as is raised for the other buffer
types if they are not present but requested).

Not a backport candidate since it does change semantics of the buffer object
(although it could be argued this is enough of a bug to bother backporting).
diff --git a/Modules/arraymodule.c b/Modules/arraymodule.c
index af12769..eb6ceef 100644
--- a/Modules/arraymodule.c
+++ b/Modules/arraymodule.c
@@ -1787,6 +1787,7 @@
 	(readbufferproc)array_buffer_getreadbuf,
 	(writebufferproc)array_buffer_getwritebuf,
 	(segcountproc)array_buffer_getsegcount,
+	NULL,
 };
 
 static PyObject *