diff options
| author | Serhiy Storchaka <storchaka@gmail.com> | 2024-01-31 11:11:35 (GMT) |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-01-31 11:11:35 (GMT) |
| commit | b7688ef71eddcaf14f71b1c22ff2f164f34b2c74 (patch) | |
| tree | 08f81ce254f5876bd674d680c5e20050cf6f7c49 /Lib/test/test_buffer.py | |
| parent | 7a93db44257c0404dc407ff2ddc997f4bb8890ed (diff) | |
| download | cpython-b7688ef71eddcaf14f71b1c22ff2f164f34b2c74.zip cpython-b7688ef71eddcaf14f71b1c22ff2f164f34b2c74.tar.gz cpython-b7688ef71eddcaf14f71b1c22ff2f164f34b2c74.tar.bz2 | |
gh-114685: Check flags in PyObject_GetBuffer() (GH-114707)
PyObject_GetBuffer() now raises a SystemError if called with
PyBUF_READ or PyBUF_WRITE as flags. These flags should
only be used with the PyMemoryView_* C API.
Diffstat (limited to 'Lib/test/test_buffer.py')
| -rw-r--r-- | Lib/test/test_buffer.py | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/Lib/test/test_buffer.py b/Lib/test/test_buffer.py index 72a06d6..535b795 100644 --- a/Lib/test/test_buffer.py +++ b/Lib/test/test_buffer.py @@ -4585,6 +4585,12 @@ class TestPythonBufferProtocol(unittest.TestCase): buf.__release_buffer__(mv) self.assertEqual(buf.references, 0) + @unittest.skipIf(_testcapi is None, "requires _testcapi") + def test_c_buffer_invalid_flags(self): + buf = _testcapi.testBuf() + self.assertRaises(SystemError, buf.__buffer__, PyBUF_READ) + self.assertRaises(SystemError, buf.__buffer__, PyBUF_WRITE) + def test_inheritance(self): class A(bytearray): def __buffer__(self, flags): |
