From 54120efdf64c40c93308dee3935bbed7e1cdc1aa Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Wed, 28 Dec 2022 11:08:44 +0100 Subject: [PATCH] transfer: break the read loop when RECV is cleared When the RECV bit is cleared because the response reading for this transfer is complete, the read loop should be stopped. data_pending() can otherwise still return TRUE and another read would be attempted. Reported-by: Hide Ishikawa Fixes #10172 Closes #10174 --- lib/transfer.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/transfer.c b/lib/transfer.c index e58619a84c..58bb8be4cf 100644 --- a/lib/transfer.c +++ b/lib/transfer.c @@ -776,8 +776,8 @@ static CURLcode readwrite_data(struct Curl_easy *data, k->keepon &= ~KEEP_RECV; } - if(k->keepon & KEEP_RECV_PAUSE) { - /* this is a paused transfer */ + if((k->keepon & KEEP_RECV_PAUSE) || !(k->keepon & KEEP_RECV)) { + /* this is a paused or stopped transfer */ break; } -- 2.47.2