Message117644
If an exporter returns a Py_buffer with ndim 1, PyMemoryView_FromObject changes the shape and strides pointer fields to point to a local Py_buffer array field. This array field is undocumented. Any heap memory these pointers reference is lost. Should the exporter's bf_releasebuffer later try and free the memory, the Python interpreter may segfault.
Attached is a demonstration program. Its output is:
Accessing buffer directly...
Accessing buffer through a memory view...
* View->shape has changed.
Done.
where the third line shows bf_releasebuffer has detected a changed pointer. |
|
Date |
User |
Action |
Args |
2010-09-29 19:03:38 | kermode | set | recipients:
+ kermode |
2010-09-29 19:03:38 | kermode | set | messageid: <1285787018.03.0.476755592717.issue9990@psf.upfronthosting.co.za> |
2010-09-29 19:03:36 | kermode | link | issue9990 messages |
2010-09-29 19:03:36 | kermode | create | |
|