summaryrefslogtreecommitdiffstats
path: root/generic
diff options
context:
space:
mode:
Diffstat (limited to 'generic')
-rw-r--r--generic/tclEvent.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/generic/tclEvent.c b/generic/tclEvent.c
index 3c067a4..4ebdb9f 100644
--- a/generic/tclEvent.c
+++ b/generic/tclEvent.c
@@ -11,7 +11,7 @@
* See the file "license.terms" for information on usage and redistribution
* of this file, and for a DISCLAIMER OF ALL WARRANTIES.
*
- * RCS: @(#) $Id: tclEvent.c,v 1.34 2004/04/23 07:21:15 davygrvy Exp $
+ * RCS: @(#) $Id: tclEvent.c,v 1.35 2004/05/04 12:36:22 dkf Exp $
*/
#include "tclInt.h"
@@ -676,8 +676,8 @@ TclSetLibraryPath(pathPtr)
ckfree(tclLibraryPathStr);
}
toDupe = Tcl_GetStringFromObj(pathPtr, &size);
- tclLibraryPathStr = ckalloc(size+1);
- strcpy(tclLibraryPathStr, toDupe);
+ tclLibraryPathStr = ckalloc((unsigned)size+1);
+ memcpy(tclLibraryPathStr, toDupe, (unsigned)size+1);
}
/*
@@ -1114,6 +1114,9 @@ Tcl_VwaitObjCmd(clientData, interp, objc, objv)
foundEvent = 1;
while (!done && foundEvent) {
foundEvent = Tcl_DoOneEvent(TCL_ALL_EVENTS);
+ if (Tcl_LimitExceeded(interp)) {
+ return TCL_ERROR;
+ }
}
Tcl_UntraceVar(interp, nameString,
TCL_GLOBAL_ONLY|TCL_TRACE_WRITES|TCL_TRACE_UNSETS,
@@ -1200,7 +1203,9 @@ Tcl_UpdateObjCmd(clientData, interp, objc, objv)
}
while (Tcl_DoOneEvent(flags) != 0) {
- /* Empty loop body */
+ if (Tcl_LimitExceeded(interp)) {
+ return TCL_ERROR;
+ }
}
/*