From 54120efdf64c40c93308dee3935bbed7e1cdc1aa Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Wed, 28 Dec 2022 11:08:44 +0100 Subject: 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(-) (limited to 'lib/transfer.c') diff --git a/lib/transfer.c b/lib/transfer.c index e58619a84..58bb8be4c 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; } -- cgit v1.2.1