diff options
| author | jan.nijtmans <nijtmans@users.sourceforge.net> | 2021-02-18 12:35:44 (GMT) |
|---|---|---|
| committer | jan.nijtmans <nijtmans@users.sourceforge.net> | 2021-02-18 12:35:44 (GMT) |
| commit | 185b0d14932f4cc8503e6dd235da5bd90ebc777c (patch) | |
| tree | 9182e5085918a168d44eed5e3c4e4efb70fa456d /generic/tclInterp.c | |
| parent | 8844e2789a8e8d854f53069ea852ec5ef726757c (diff) | |
| parent | 345894cae91f9e72bbbfd6264ab98a2263d9dd1b (diff) | |
| download | tcl-185b0d14932f4cc8503e6dd235da5bd90ebc777c.zip tcl-185b0d14932f4cc8503e6dd235da5bd90ebc777c.tar.gz tcl-185b0d14932f4cc8503e6dd235da5bd90ebc777c.tar.bz2 | |
Merge 8.7
Diffstat (limited to 'generic/tclInterp.c')
| -rw-r--r-- | generic/tclInterp.c | 22 |
1 files changed, 11 insertions, 11 deletions
diff --git a/generic/tclInterp.c b/generic/tclInterp.c index a263a66..d63add2 100644 --- a/generic/tclInterp.c +++ b/generic/tclInterp.c @@ -4785,7 +4785,7 @@ ChildTimeLimitCmd( Tcl_Obj *milliObj = NULL, *secObj = NULL; int gran = 0; Tcl_Time limitMoment; - int tmp; + Tcl_WideInt tmp; Tcl_LimitGetTime(childInterp, &limitMoment); for (i=consumedObjc ; i<objc ; i+=2) { @@ -4817,17 +4817,17 @@ ChildTimeLimitCmd( if (milliLen == 0) { break; } - if (TclGetIntFromObj(interp, objv[i+1], &tmp) != TCL_OK) { + if (TclGetWideIntFromObj(interp, objv[i+1], &tmp) != TCL_OK) { return TCL_ERROR; } - if (tmp < 0) { - Tcl_SetObjResult(interp, Tcl_NewStringObj( - "milliseconds must be at least 0", -1)); + if (tmp < 0 || tmp > LONG_MAX) { + Tcl_SetObjResult(interp, Tcl_ObjPrintf( + "milliseconds must be between 0 and %ld", LONG_MAX)); Tcl_SetErrorCode(interp, "TCL", "OPERATION", "INTERP", "BADVALUE", NULL); return TCL_ERROR; } - limitMoment.usec = ((long) tmp)*1000; + limitMoment.usec = ((long)tmp)*1000; break; case OPT_SEC: secObj = objv[i+1]; @@ -4835,17 +4835,17 @@ ChildTimeLimitCmd( if (secLen == 0) { break; } - if (TclGetIntFromObj(interp, objv[i+1], &tmp) != TCL_OK) { + if (TclGetWideIntFromObj(interp, objv[i+1], &tmp) != TCL_OK) { return TCL_ERROR; } - if (tmp < 0) { - Tcl_SetObjResult(interp, Tcl_NewStringObj( - "seconds must be at least 0", -1)); + if (tmp < 0 || tmp > LONG_MAX) { + Tcl_SetObjResult(interp, Tcl_ObjPrintf( + "seconds must be between 0 and %ld", LONG_MAX)); Tcl_SetErrorCode(interp, "TCL", "OPERATION", "INTERP", "BADVALUE", NULL); return TCL_ERROR; } - limitMoment.sec = tmp; + limitMoment.sec = (long)tmp; break; } } |
