From: nobody <no...@so...> - 2001-03-05 11:52:37
|
Bugs #405769, was updated on 2001-03-03 19:46 You can respond by visiting: http://sourceforge.net/tracker/?func=detail&atid=110894&aid=405769&group_id=10894 Category: Variables Group: 8.4a2 Status: Open Priority: 7 Submitted By: miguel sofer Assigned to: Donal K. Fellows Summary: rare segfault at "unset -nocomplain" Initial Comment: The command unset -nocomplain (with no further arguments) causes Tcl_UnsetObjCmd (in tclVar.c) to request the string representation of an object which was *not* passed as an argument. Under special circumstances (which I couldn't trigger in current sources) this causes a segfault. In order to cause a segfault, *(stackPtr(stackTop+1)->bytes) must be in a forbidden memory region at the moment of the invocation of "unset -nocomplain". The cure seems pretty harmless: remove the offending line, which is unused anyway. The offending statement (line 2627 in tclVar.c) reads: name = TclGetString(objv[i]); Thusly corrected sources pass all tcltests. ---------------------------------------------------------------------- Comment By: miguel sofer Date: 2001-03-03 20:10 Message: Logged In: YES user_id=148712 Forgot a detail: this also cures the following behaviour, which is not in agreement with the man page for unset (and hence is a bug): [mig@ant bin2]$ tclsh8.4 % set -- 1 1 % unset -nocomplain -- % set -- 1 ---------------------------------------------------------------------- You can respond by visiting: http://sourceforge.net/tracker/?func=detail&atid=110894&aid=405769&group_id=10894 |