From a5cd0c254693b12d78c39cc4cddc07745e121668 Mon Sep 17 00:00:00 2001 From: dgp Date: Fri, 15 Jul 2011 17:50:20 +0000 Subject: Avoid segfaults when RecordByteCodeStats() is called in a deleted interp. --- ChangeLog | 5 +++++ generic/tclCompile.c | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/ChangeLog b/ChangeLog index 2a31c51..b5b1894 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2011-07-15 Don Porter + + * generic/tclCompile.c: Avoid segfaults when RecordByteCodeStats() + is called in a deleted interp. + 2011-07-13 Don Porter * generic/tclProc.c: [Bug 3366265] Buffer for storing the command diff --git a/generic/tclCompile.c b/generic/tclCompile.c index f29c54e..e281a0a 100644 --- a/generic/tclCompile.c +++ b/generic/tclCompile.c @@ -4012,6 +4012,11 @@ RecordByteCodeStats(codePtr) Interp *iPtr = (Interp *) *codePtr->interpHandle; register ByteCodeStats *statsPtr = &(iPtr->stats); + if (iPtr == NULL) { + /* Avoid segfaulting in case we're called in a deleted interp */ + return; + } + statsPtr->numCompilations++; statsPtr->totalSrcBytes += (double) codePtr->numSrcBytes; statsPtr->totalByteCodeBytes += (double) codePtr->structureSize; -- cgit v0.12