X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?p=chiark-tcl.git;a=blobdiff_plain;f=maskmap%2Faddrmap.c;h=8dc08c1f7311fe0a459875ce7dace834c7279c81;hp=437b41ae1c8c12050bb0fea07b75e2eae3d62dd7;hb=b0b6f74adb6a70b0c365a4fa0aefee3019a22519;hpb=5dca360f2da544c9b6baf9d18ad8cd0b0e073e60 diff --git a/maskmap/addrmap.c b/maskmap/addrmap.c index 437b41a..8dc08c1 100644 --- a/maskmap/addrmap.c +++ b/maskmap/addrmap.c @@ -1,6 +1,6 @@ /* * maskmap - Tcl extension for address mask map data structures - * Copyright 2006 Ian Jackson + * 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 @@ -13,9 +13,7 @@ * General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA - * 02110-1301, USA. + * along with this library; if not, see . */ @@ -93,6 +91,7 @@ static void am_reallocentries(AddrMap_Value *am, int len) { assert(len >= am->space); if (!len) return; + assert(len < INT_MAX/sizeof(*newentries)); newentries= TREALLOC(am->entries, sizeof(*newentries)*len); assert(newentries); @@ -236,6 +235,7 @@ static int addrmap_t_sfa(Tcl_Interp *ip, Tcl_Obj *o) { } am->byl= bitlen/8; + assert(inlen < INT_MAX/2); am_reallocentries(am, (inlen-1)*2+1); ame= ame_sfa_alloc(am);