chiark / gitweb /
use of int and overflow review
[chiark-tcl.git] / maskmap / addrmap.c
index 437b41ae1c8c12050bb0fea07b75e2eae3d62dd7..c0f66288c194a8a5bb9909a4fa290b00d895ad7e 100644 (file)
@@ -93,6 +93,7 @@ static void am_reallocentries(AddrMap_Value *am, int len) {
   assert(len >= am->space);
   if (!len) return;
 
   assert(len >= am->space);
   if (!len) return;
 
+  assert(len < INT_MAX/sizeof(*newentries));
   newentries= TREALLOC(am->entries, sizeof(*newentries)*len);
   assert(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;
   }
 
   am->byl= bitlen/8;
+  assert(inlen < INT_MAX/2);
   am_reallocentries(am, (inlen-1)*2+1);
 
   ame= ame_sfa_alloc(am);
   am_reallocentries(am, (inlen-1)*2+1);
 
   ame= ame_sfa_alloc(am);