From f4ebb57420e8ed4c8148e8dc5c7478ad38f3ad8d Mon Sep 17 00:00:00 2001 From: eidheim Date: Wed, 19 Feb 2020 18:04:05 +0100 Subject: [PATCH] Fixed dangling reference in Client::sync_request mentioned in https://gitlab.com/eidheim/Simple-Web-Server/-/merge_requests/248#note_291088756 --- client_http.hpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/client_http.hpp b/client_http.hpp index 2b790b8..723f882 100644 --- a/client_http.hpp +++ b/client_http.hpp @@ -432,9 +432,9 @@ namespace SimpleWeb { std::shared_ptr response; std::promise> response_promise; - bool stop_future_handlers = false; - request(method, path, content, header, [&response, &response_promise, &stop_future_handlers](std::shared_ptr response_, error_code ec) { - if(stop_future_handlers) + auto stop_future_handlers = std::make_shared(false); + request(method, path, content, header, [&response, &response_promise, stop_future_handlers](std::shared_ptr response_, error_code ec) { + if(*stop_future_handlers) return; if(!response) @@ -455,7 +455,7 @@ namespace SimpleWeb { if(ec) { response_promise.set_exception(std::make_exception_ptr(system_error(ec))); - stop_future_handlers = true; + *stop_future_handlers = true; } else if(response_->content.end) response_promise.set_value(response);