do not leak buffer if mmap is not writable
diff --git a/Modules/mmapmodule.c b/Modules/mmapmodule.c
index 6e2db61..e01de44 100644
--- a/Modules/mmapmodule.c
+++ b/Modules/mmapmodule.c
@@ -383,8 +383,10 @@
     if (!PyArg_ParseTuple(args, "y*:write", &data))
         return(NULL);
 
-    if (!is_writable(self))
+    if (!is_writable(self)) {
+        PyBuffer_Release(&data);
         return NULL;
+    }
 
     if (self->pos > self->size || self->size - self->pos < data.len) {
         PyBuffer_Release(&data);