Tcl Source Code

View Ticket
Login
Ticket UUID: 2903011
Title: Segv from calling destructor within constructor
Type: Bug Version: obsolete: 8.6b1.1
Submitter: coldstore Created on: 2009-11-24 10:01:08
Subsystem: 35. TclOO Package Assigned To: dkf
Priority: 9 Immediate Severity:
Status: Closed Last Modified: 2009-11-24 19:01:08
Resolution: Fixed Closed By: dkf
    Closed on: 2009-11-24 12:01:08
Description:
[oo::class create foo {constructor {} {my destroy}}] new

Sometimes results in a segv in Tcl_GetCommandFullName (interp=0x8053f58, command=0x10b15a98,\
 objPtr=0x1254a650) [example from gdb] called from CallCommandTraces (iPtr=0x8053f58, cmdPtr=0x10b15a98, oldName\
=0x0, newName=0x0, flags=16512) [op cit]

The proximate cause is a bogus cmdPtr->nsPtr which is full of random.

Edited gdb session attached.

Colin.
User Comments: dkf added on 2009-11-24 19:01:08:

allow_comments - 1

Nasty. It's not safe to delete an object twice or access most of its fields after the lock in it is dropped.

coldstore added on 2009-11-24 17:01:08:

File Added - 352309: crashlog

Attachments: