chiark / gitweb /
copyright dates
[chiark-tcl.git] / maskmap / addrmap.c
index 33eeda42390c1dab9db0adef5eba40efcd962d0a..0f72eb4899ad28edd0a6995c626571cdf4e22eda 100644 (file)
@@ -1,6 +1,24 @@
 /*
+ * maskmap - Tcl extension for address mask map data structures
+ * 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, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301, USA.
  */
 
+
 #include "chiark_tcl_hbytes.h"
 
 /*---------- operations on AddrMap_Entry ----------*/
@@ -75,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);
   
@@ -218,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);