From 574902b461ff55f16f5fd44355f8c19cb76a0b56 Mon Sep 17 00:00:00 2001 From: Josh Elsasser Date: Mon, 2 Apr 2007 21:19:53 +0000 Subject: [PATCH] Fix benc list/dict allocation. --- libtransmission/bencode.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/libtransmission/bencode.c b/libtransmission/bencode.c index c30c9a8ab..4ac1cc872 100644 --- a/libtransmission/bencode.c +++ b/libtransmission/bencode.c @@ -36,12 +36,13 @@ static int makeroom( benc_val_t * val, int count ) if( val->val.l.count + count <= val->val.l.alloc ) { - return 1; + return 0; } /* We need a bigger boat */ - len = val->val.l.alloc + count + ( count % LIST_SIZE ? 0 : LIST_SIZE ); + len = val->val.l.alloc + ( count / LIST_SIZE ) + + ( count % LIST_SIZE ? LIST_SIZE : 0 ); new = realloc( val->val.l.vals, len * sizeof( benc_val_t ) ); if( NULL == new ) {