[Python-Dev] Re: [Python-Help] Bug in PyTuple_Resize
Martin von Loewis
help@python.org
Thu, 14 Sep 2000 19:28:54 +0200 (MET DST)
> Thank you for the response. Unfortunately, I do not have the know-how at
> this time to solve this problem! I did submit my original query and
> your response to the sourceforge bug tracking mechanism this morning.
I spent some time with this bug, and found that it is in some
unrelated code: the tuple resizing mechanism is is buggy if cyclic gc
is enabled. A patch is included below. [and in SF patch 101509]
It just happens that this code is rarely used: in _tkinter, when
filtering tuples, and when converting sequences to tuples. And even
then, the bug triggers on most systems only for _tkinter: the tuple
gets smaller in filter, so realloc(3C) returns the same adress;
tuple() normally succeeds in knowing the size in advance, so no resize
is necessary.
Regards,
Martin
Index: tupleobject.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Objects/tupleobject.c,v
retrieving revision 2.44
diff -u -r2.44 tupleobject.c
--- tupleobject.c 2000/09/01 23:29:27 2.44
+++ tupleobject.c 2000/09/14 17:12:07
@@ -510,7 +510,7 @@
if (g == NULL) {
sv = NULL;
} else {
- sv = (PyTupleObject *)PyObject_FROM_GC(g);
+ sv = (PyTupleObject *)PyObject_FROM_GC(sv);
}
#else
sv = (PyTupleObject *)