diff options
author | jan.nijtmans <nijtmans@users.sourceforge.net> | 2022-09-02 15:20:44 (GMT) |
---|---|---|
committer | jan.nijtmans <nijtmans@users.sourceforge.net> | 2022-09-02 15:20:44 (GMT) |
commit | 191d1f584734b4cd774b2c593bb2f791fb7823ab (patch) | |
tree | 722cd868e7572c12b4b641838ae8b5535625474c /generic | |
parent | 792b2f5aff74da4cf18d92344fa5c56254d3285c (diff) | |
parent | 46cf6812fcfb415aae1696cf0b29cd2a6a77917a (diff) | |
download | tcl-191d1f584734b4cd774b2c593bb2f791fb7823ab.zip tcl-191d1f584734b4cd774b2c593bb2f791fb7823ab.tar.gz tcl-191d1f584734b4cd774b2c593bb2f791fb7823ab.tar.bz2 |
Merge 8.7
Diffstat (limited to 'generic')
-rw-r--r-- | generic/tclBasic.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/generic/tclBasic.c b/generic/tclBasic.c index 54df6ff..135765b 100644 --- a/generic/tclBasic.c +++ b/generic/tclBasic.c @@ -2648,7 +2648,7 @@ static int cmdWrapperProc(void *clientData, if (objc < 0) { objc = -1; } - return info->proc(info->clientData, interp, objc, objv); + return info->proc(info->clientData, interp, (size_t)objc, objv); } static void cmdWrapperDeleteProc(void *clientData) { @@ -8427,6 +8427,11 @@ Tcl_NRCallObjProc2( size_t objc, Tcl_Obj *const objv[]) { + if (objc > INT_MAX) { + Tcl_WrongNumArgs(interp, 1, objv, "?args?"); + return TCL_ERROR; + } + NRE_callback *rootPtr = TOP_CB(interp); CmdWrapperInfo *info = (CmdWrapperInfo *)Tcl_Alloc(sizeof(CmdWrapperInfo)); info->clientData = clientData; @@ -8472,7 +8477,10 @@ static int cmdWrapperNreProc( Tcl_Obj *const objv[]) { CmdWrapperInfo *info = (CmdWrapperInfo *)clientData; - return info->nreProc(info->clientData, interp, objc, objv); + if (objc < 0) { + objc = -1; + } + return info->nreProc(info->clientData, interp, (size_t)objc, objv); } Tcl_Command |