summaryrefslogtreecommitdiff
path: root/Python/traceback.c
diff options
context:
space:
mode:
authorGuido van Rossum <guido@python.org>2000-03-13 16:01:29 +0000
committerGuido van Rossum <guido@python.org>2000-03-13 16:01:29 +0000
commite12669265f8b40d5c934e0fa2c2f01bc279b11be (patch)
tree27758758f1a41db3cee9f00a89fb3555406faa1d /Python/traceback.c
parenta4b309eb2820367ba43caafa03fff712c270fb31 (diff)
downloadcpython-e12669265f8b40d5c934e0fa2c2f01bc279b11be.tar.gz
Christian Tismer's "trashcan" patch:
Added wrapping macros to dictobject.c, listobject.c, tupleobject.c, frameobject.c, traceback.c that safely prevends core dumps on stack overflow. Macros and functions in object.c, object.h. The method is an "elevator destructor" that turns cascading deletes into tail recursive behavior when some limit is hit.
Diffstat (limited to 'Python/traceback.c')
-rw-r--r--Python/traceback.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/Python/traceback.c b/Python/traceback.c
index ca77eaa62a..e03551d6c1 100644
--- a/Python/traceback.c
+++ b/Python/traceback.c
@@ -68,9 +68,11 @@ static void
tb_dealloc(tb)
tracebackobject *tb;
{
+ Py_TRASHCAN_SAFE_BEGIN(tb)
Py_XDECREF(tb->tb_next);
Py_XDECREF(tb->tb_frame);
PyMem_DEL(tb);
+ Py_TRASHCAN_SAFE_END(tb)
}
#define Tracebacktype PyTraceBack_Type