[Python-Dev] Overwriting objects before deallocating them
Andrew Kuchling
akuchlin@mems-exchange.org
Fri, 24 May 2002 10:57:53 -0400
In the cryptography toolkit, the deallocators in the C extensions all
overwrite the object's contents before deallocating it. Is this dodgy
practice? Is it likely or possible that some day PyObject_Del will
need to look at the contents of a non-GC-supporting object before
freeing it? (Encryption or hashing objects are not containers, and
it's highly unlikely they ever will be, so they'll never need to
support GC traversal.)
--amk
Example code:
static void
ALGdealloc(PyObject *ptr)
{
int i;
char *obj=(char *)ptr;
/* Overwrite the contents of the object, just in case... */
for (i = 0; i < sizeof(ALGobject); i++)
*(obj + i) = '\0';
PyObject_DEL(ptr);
}
(Note to self: use memset().)