If a file is opened with an explicit buffer size >= 1, repeated
close() calls would attempt to free() the buffer already free()ed on
the first close().     [bug introduced with patch #788249]

Making sure that the buffer is free()ed in file object deallocation is
a belt-n-braces bit of insurance against a memory leak.
diff --git a/Misc/NEWS b/Misc/NEWS
index 9fc3ba7..b1f2043 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -194,6 +194,10 @@
   the data and the data length.  Instead, the appropriate tp_as_buffer
   method is called as necessary.  
 
+- fixed: if a file is opened with an explicit buffer size >= 1, repeated 
+  close() calls would attempt to free() the buffer already free()ed on
+  the first call.
+
 
 Extension modules
 -----------------