X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?a=blobdiff_plain;ds=sidebyside;f=hbytes%2Fhbytes.c;h=15980dcd6024e7518c8f60a7c1ba72bfb295f3d3;hb=0a9545b82e4d628345e979c47d5f0a162b8af2bb;hp=22383df0d05f889201d380e1e6c7ab79daffbc8d;hpb=82f88c53ddb84e42c770c23feb9bb0ee18341188;p=chiark-tcl.git diff --git a/hbytes/hbytes.c b/hbytes/hbytes.c index 22383df..15980dc 100644 --- a/hbytes/hbytes.c +++ b/hbytes/hbytes.c @@ -1,7 +1,24 @@ /* + * hbytes - hex-stringrep efficient byteblocks for Tcl + * Copyright 2006 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 "hbytes.h" #define COMPLEX(hb) ((HBytes_ComplexValue*)hb->begin_complex) @@ -81,6 +98,8 @@ Byte *cht_hb_prepend(HBytes_Value *hb, int el) { Byte *old_block, *new_block, *new_dstart; cx= complex(hb); + + assert(el < INT_MAX/4 && cx->len < INT_MAX/2); if (cx->prespace < el) { new_prespace= el*2 + cx->len; @@ -104,6 +123,7 @@ Byte *cht_hb_append(HBytes_Value *hb, int el) { Byte *newpart, *new_block, *old_block; cx= complex(hb); + assert(el < INT_MAX/4 && cx->len < INT_MAX/4); new_len= cx->len + el; if (new_len > cx->avail) {