From 1c5e71ff5eb6058d1729e43cc22167b799c99bed Mon Sep 17 00:00:00 2001 From: Fredrik Tolf Date: Thu, 5 Nov 2009 16:59:08 +0100 Subject: [PATCH] Truncate the calculated transfer curpos when reading local file data. With command-stream text left unsent in the socket pipe, curpos would become negative, which messes things up. --- daemon/transfer.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/daemon/transfer.c b/daemon/transfer.c index 62e81d6..1863e74 100644 --- a/daemon/transfer.c +++ b/daemon/transfer.c @@ -142,7 +142,8 @@ static void localread(struct socket *sk, struct transfer *transfer) transfer->localpos += blen; bytesupload += blen; } - curpos = transfer->localpos - socktqueuesize(transfer->datapipe); + if((curpos = transfer->localpos - socktqueuesize(transfer->datapipe)) < 0) + curpos = 0; if(curpos != transfer->curpos) { transfer->curpos = curpos; CBCHAINDOCB(transfer, trans_p, transfer); -- 2.11.0