Fix from SF #681367: inherit tp_as_buffer.  This only applies to C
types -- Python types already inherited this.
diff --git a/Misc/NEWS b/Misc/NEWS
index 59ad277..ed4f7cf 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -258,6 +258,10 @@
 C API
 -----
 
+- A C type that inherits from a base type that defines tp_as_buffer
+  will now inherit the tp_as_buffer pointer if it doesn't define one.
+  (SF #681367)
+
 - The PyArg_Parse functions now issue a DeprecationWarning if a float
   argument is provided when an integer is specified (this affects the 'b',
   'B', 'h', 'H', 'i', and 'l' codes).  Future versions of Python will
diff --git a/Objects/typeobject.c b/Objects/typeobject.c
index 38d5956..baea55a 100644
--- a/Objects/typeobject.c
+++ b/Objects/typeobject.c
@@ -2915,6 +2915,8 @@
 			type->tp_as_sequence = base->tp_as_sequence;
 		if (type->tp_as_mapping == NULL)
 			type->tp_as_mapping = base->tp_as_mapping;
+		if (type->tp_as_buffer == NULL)
+			type->tp_as_buffer = base->tp_as_buffer;
 	}
 
 	/* Link into each base class's list of subclasses */