From 9305870cca01fbc9b1dcbbf9dcc2e42a7fe877a1 Mon Sep 17 00:00:00 2001 From: Hoe Hao Cheng Date: Sat, 22 Jul 2023 19:37:14 +0800 Subject: [PATCH] Fix a segfault in ReadAllWithProgress --- Common/Net/NetBuffer.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Common/Net/NetBuffer.cpp b/Common/Net/NetBuffer.cpp index 06310a6c83..6a507977b2 100644 --- a/Common/Net/NetBuffer.cpp +++ b/Common/Net/NetBuffer.cpp @@ -76,8 +76,8 @@ bool Buffer::ReadAllWithProgress(int fd, int knownSize, RequestProgress *progres int total = 0; while (true) { bool ready = false; - while (!ready && (!progress || !*progress->cancelled)) { - if (*progress->cancelled) + while (!ready && (!progress || (progress->cancelled && !*progress->cancelled))) { + if (progress && progress->cancelled && *progress->cancelled) return false; ready = fd_util::WaitUntilReady(fd, CANCEL_INTERVAL, false); }