From e3f10dc2796fd709fece28a8a2e82733bc273d47 Mon Sep 17 00:00:00 2001 From: Fredrik Tolf Date: Thu, 29 Nov 2007 21:14:46 +0100 Subject: [PATCH] Fixed fake OOM bug in transfergetdata. --- daemon/transfer.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/daemon/transfer.c b/daemon/transfer.c index bebe011..e2fe54e 100644 --- a/daemon/transfer.c +++ b/daemon/transfer.c @@ -292,8 +292,12 @@ void *transfergetdata(struct transfer *transfer, size_t *size) return(NULL); if((transfer->endpos >= 0) && (transfer->curpos + *size >= transfer->endpos)) { - *size = transfer->endpos - transfer->curpos; - buf = srealloc(buf, *size); + if((*size = transfer->endpos - transfer->curpos) == 0) { + free(buf); + buf = NULL; + } else { + buf = srealloc(buf, *size); + } } transfer->curpos += *size; bytesupload += *size; -- 2.11.0