Tcl Source Code

Check-in [b7862cf944]
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:fix for [Bug 2662380], crash caused by appending to a variable with a write trace that unsets it
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | core-8-4-branch
Files: files | file ages | folders
SHA1: b7862cf94432546000865d5873c077c3d79c68ca
User & Date: mig 2011-04-13 13:09:19
Context
2011-04-18
07:10
fix for [Bug 3288345]: Wrong Tcl_StatBuf used on MinGW. check-in: 0a989dc405 user: jan.nijtmans tags: core-8-4-branch
2011-04-13
13:25
fix merge history check-in: 9a245919a3 user: mig tags: core-8-5-branch
13:09
fix for [Bug 2662380], crash caused by appending to a variable with a write trace that unsets it check-in: b7862cf944 user: mig tags: core-8-4-branch
2011-04-04
16:19
Updated README files, repairing broken URLs and other rot. check-in: 00402f2aea user: dgp tags: core-8-4-branch
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Changes to ChangeLog.






1
2
3
4
5
6
7





2011-04-04  Don Porter  <[email protected]>

	* README:	Updated README files, repairing broken URLs and
	* macosx/README:	removing other bits that were clearly wrong.
	* unix/README:	Still could use more eyeballs on the detailed build
	* win/README:	advice on various plaforms. [Bug 3202030]

>
>
>
>
>







1
2
3
4
5
6
7
8
9
10
11
12
2011-04-13  Miguel Sofer  <[email protected]>

	* generic/tclVar.c: fix for [Bug 2662380], crash caused by
	appending to a variable with a write trace that unsets it.

2011-04-04  Don Porter  <[email protected]>

	* README:	Updated README files, repairing broken URLs and
	* macosx/README:	removing other bits that were clearly wrong.
	* unix/README:	Still could use more eyeballs on the detailed build
	* win/README:	advice on various plaforms. [Bug 3202030]

Changes to generic/tclVar.c.

2695
2696
2697
2698
2699
2700
2701
2702

2703
2704
2705
2706
2707
2708
2709
	     * the Var pointers: should a trace delete the variable,
	     * the return value of TclPtrSetVar will be NULL, and we 
	     * will not access the variable again.
	     */

	    varValuePtr = TclPtrSetVar(interp, varPtr, arrayPtr, part1, NULL, 
	            objv[i], (TCL_APPEND_VALUE | TCL_LEAVE_ERR_MSG));
	    if (varValuePtr == NULL) {

		return TCL_ERROR;
	    }
	}
    }
    Tcl_SetObjResult(interp, varValuePtr);
    return TCL_OK;
}







|
>







2695
2696
2697
2698
2699
2700
2701
2702
2703
2704
2705
2706
2707
2708
2709
2710
	     * the Var pointers: should a trace delete the variable,
	     * the return value of TclPtrSetVar will be NULL, and we 
	     * will not access the variable again.
	     */

	    varValuePtr = TclPtrSetVar(interp, varPtr, arrayPtr, part1, NULL, 
	            objv[i], (TCL_APPEND_VALUE | TCL_LEAVE_ERR_MSG));
	    if ((varValuePtr == NULL) ||
		    (varValuePtr == ((Interp *) interp)->emptyObjPtr)) {
		return TCL_ERROR;
	    }
	}
    }
    Tcl_SetObjResult(interp, varValuePtr);
    return TCL_OK;
}