[XML-SIG] Bug in exception handling?
Jack Jansen
jack@oratrix.nl
Thu, 08 Jul 1999 10:49:40 +0200
> Sounds like a hack to me. Shouldn't it be solved by INCREF'ing the buffer
> somewhere in the C code to pyexpat? e.g. where the exception code makes
> reference to the buffer? I didn't look at the code myself, so I don't
> know whether it is particularly difficult to find.
I looked, but I can't see anything. I haven't a clue how this code code be
responsible for an extra free:
static PyObject *
xmlparse_Parse(self, args)
xmlparseobject *self;
PyObject *args;
{
char *s;
int slen;
int isFinal = 0;
int rv;
if (!PyArg_ParseTuple(args, "s#|i", &s, &slen, &isFinal))
return NULL;
if (setjmp(self->jmpbuf)) {
/* Error in callback routine */
return NULL;
}
self->jmpbuf_valid = 1;
rv = XML_Parse(self->itself, s, slen, isFinal);
self->jmpbuf_valid = 0;
return Py_BuildValue("i", rv);
}
Hmm, the things you are read()ing from, are they real files? Or could it be
that the missing INCREF is in those objects?
--
Jack Jansen | ++++ stop the execution of Mumia Abu-Jamal ++++
Jack.Jansen@oratrix.com | ++++ if you agree copy these lines to your sig ++++
www.oratrix.nl/~jack | see http://www.xs4all.nl/~tank/spg-l/sigaction.htm