[issue31626] Writing in freed memory in _PyMem_DebugRawRealloc() after shrinking a memory block
STINNER Victor
report at bugs.python.org
Wed Oct 25 10:18:51 EDT 2017
STINNER Victor <victor.stinner at gmail.com> added the comment:
"I tried to build CPython on 64-bit OpenBSD. It was built successfully, but tests crash."
It's the first time that anyone complains about _PyMem_DebugRawRealloc(). The behaviour seems to be very specific to OpenBSD.
Even if the current code is "weird", it works very well and is effecient.
I proposed attached PR 4119 which makes _PyMem_DebugRawRealloc() behaves correctly: erase bytes *before* calling realloc(), but keeps a copy if realloc() fails. My PR only changes the behaviour on OpenBSD. It keeps the current behaviour (erase bytes *after* realloc, if realloc succeeded) on other platforms for performance reasons.
----------
_______________________________________
Python tracker <report at bugs.python.org>
<https://bugs.python.org/issue31626>
_______________________________________
More information about the Python-bugs-list
mailing list