X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?p=chiark-tcl.git;a=blobdiff_plain;f=maskmap%2Faddrmap.c;h=0f72eb4899ad28edd0a6995c626571cdf4e22eda;hp=437b41ae1c8c12050bb0fea07b75e2eae3d62dd7;hb=ca8b96bf81245f21fe3906c71dc2994bfc5e516f;hpb=5dca360f2da544c9b6baf9d18ad8cd0b0e073e60 diff --git a/maskmap/addrmap.c b/maskmap/addrmap.c index 437b41a..0f72eb4 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 @@ -93,6 +93,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 +237,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);