From 8b84e5b3f975e4ad692b7cdcb1b7212b41f25cf1 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Tue, 17 Jun 2014 00:52:12 +0200 Subject: input/curl: hold mutex while writing to postponed_error --- src/input/plugins/CurlInputPlugin.cxx | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'src/input/plugins/CurlInputPlugin.cxx') diff --git a/src/input/plugins/CurlInputPlugin.cxx b/src/input/plugins/CurlInputPlugin.cxx index 2450c8754..46961d08f 100644 --- a/src/input/plugins/CurlInputPlugin.cxx +++ b/src/input/plugins/CurlInputPlugin.cxx @@ -777,9 +777,10 @@ CurlInputStream::DoSeek(offset_type new_offset) return; } + Error error; if (!InitEasy(postponed_error)) { mutex.lock(); - SeekDone(); + PostponeError(std::move(error)); return; } @@ -790,9 +791,9 @@ CurlInputStream::DoSeek(offset_type new_offset) curl_easy_setopt(easy, CURLOPT_RANGE, range); } - if (!input_curl_easy_add_indirect(this, postponed_error)) { + if (!input_curl_easy_add_indirect(this, error)) { mutex.lock(); - SeekDone(); + PostponeError(std::move(error)); return; } -- cgit v1.2.3