bytes objects are by their definition immutable and read only.&nbsp; but when passing one to a buffer api that tries to use the PyBUF_LOCK flag it raises BufferError &quot;Cannot lock this object.&quot; from PyBuffer_FillInfo in Objects/abstract.c as called by Objects/bytesobject.c&#39;s bytes_getbuffer method.<br>
<br>I think the problem is a &gt;= 0 where a != 0 was intended in PyBuffer_FillInfo:<br><br><span style="font-family: courier new,monospace;">--- Objects/abstract.c&nbsp; (revision 61375)<br>+++ Objects/abstract.c&nbsp; (working copy)<br>
@@ -673,7 +673,7 @@<br>&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (view == NULL) return 0;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (((flags &amp; PyBUF_LOCK) == PyBUF_LOCK) &amp;&amp;<br>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; readonly &gt;= 0) {<br>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; readonly != 0) {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PyErr_SetString(PyExc_BufferError,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &quot;Cannot lock this object.&quot;);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return -1;<br><br><br></span>All tests pass for me with this patch applied.<br><br>-gps<br><br>