[Python-Dev] Mixing memory management APIs
Neal Norwitz
neal@metaslash.com
Wed, 30 Jan 2002 19:13:58 -0500
Because of Michael Hudson's request, I tried running Purify
--with-pymalloc enabled. The results were a bit surprising: 13664 errors!
All the errors were in unicodeobject.c. There were 3 types of errors:
Free Memory Reads, Array Bounds Reads, and Unitialized Memory Reads.
The line #s were in strange places (e.g., in a function declaration
and accessing self->length in an if clause, after it was accessed w/o error).
The line #s are primarily: unicodeobject.c:2875, and unicodeobject.c:2214.
Has anyone run else used Purify and/or Insure --with-pymalloc?
BTW, I test_curses fails:
test test_curses crashed -- _curses.error: curs_set() returned ERR
Solaris 2.8, Purify 2002.
Neal
--
Problems (error lines begin with =>)
PyUnicode_TranslateCharmap [unicodeobject.c:2214]
PyObject *PyUnicode_EncodeASCII(const Py_UNICODE *p,
int size,
=> const char *errors)
{
PyObject *repr;
char *s, *start;
split_char [unicodeobject.c:2875]
if (end > self->length)
end = self->length;
if (end < 0)
=> end += self->length;
if (end < 0)
end = 0;