X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?a=blobdiff_plain;f=hbytes%2Fhbytes.c;h=dc1c19bfe84ffbcf6d0adfb911839e6e5fda1004;hb=62f8f2f13b024b49dfbed2b2839ec510ad37eb85;hp=5daecd1c5038437357fb896f1bd9d4e4b9044005;hpb=5dca360f2da544c9b6baf9d18ad8cd0b0e073e60;p=chiark-tcl.git diff --git a/hbytes/hbytes.c b/hbytes/hbytes.c index 5daecd1..dc1c19b 100644 --- a/hbytes/hbytes.c +++ b/hbytes/hbytes.c @@ -1,6 +1,6 @@ /* * hbytes - hex-stringrep efficient byteblocks for Tcl - * 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 . */ @@ -98,6 +96,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; @@ -121,6 +121,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) {