x = ndarray([1,2,3], shape=[3], flags=ND_GETBUF_FAIL)
self.assertRaises(BufferError, memoryview, x)
+ def test_bytearray_release_buffer_read_flag(self):
+ # See https://github.com/python/cpython/issues/126980
+ obj = bytearray(b'abc')
+ with self.assertRaises(SystemError):
+ obj.__buffer__(inspect.BufferFlags.READ)
+ with self.assertRaises(SystemError):
+ obj.__buffer__(inspect.BufferFlags.WRITE)
+
@support.cpython_only
def test_pybuffer_size_from_format(self):
# basic tests
}
void *ptr = (void *) PyByteArray_AS_STRING(obj);
- /* cannot fail if view != NULL and readonly == 0 */
- (void)PyBuffer_FillInfo(view, (PyObject*)obj, ptr, Py_SIZE(obj), 0, flags);
+ if (PyBuffer_FillInfo(view, (PyObject*)obj, ptr, Py_SIZE(obj), 0, flags) < 0) {
+ return -1;
+ }
obj->ob_exports++;
return 0;
}