X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?a=blobdiff_plain;f=base%2Fscriptinv.c;h=7b67d299af4af002a076ba79e480188635c3345e;hb=5f66b4d08a96e0effeed6b84c73bb0d82edceefa;hp=a066572c2873ecc3edff403574c8f6cc2a89f350;hpb=f16e3e0cf0a2b965643df01e24ef59e1393da78d;p=chiark-tcl.git diff --git a/base/scriptinv.c b/base/scriptinv.c index a066572..7b67d29 100644 --- a/base/scriptinv.c +++ b/base/scriptinv.c @@ -1,4 +1,19 @@ /* + * base code for various Tcl extensions + * Copyright 2006-2012 Ian Jackson + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this library; if not, see . */ #include "chiark-tcl-base.h" @@ -28,6 +43,7 @@ int cht_scriptinv_set(ScriptToInvoke *si, Tcl_Interp *ip, if (xargs) { rc= Tcl_ListObjLength(ip, xargs, &xlength); if (rc) return rc; Tcl_IncrRefCount(xargs); + assert(si->llen < INT_MAX/2 && xlength < INT_MAX/2); si->llen += xlength; }