From 7565207242b16dff1e3ae0cdd5d1cf7a28cc7b33 Mon Sep 17 00:00:00 2001 From: Peter Johnson Date: Sat, 29 Aug 2015 00:07:10 -0700 Subject: [PATCH] StartClient(): Make a local copy of server_name. Previously we just held onto the const char* provided by the user. This does not work in cases such as Java which provide a temporary string. --- src/Dispatcher.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/Dispatcher.cpp b/src/Dispatcher.cpp index 2f203f5cbb..083c4d6aa4 100644 --- a/src/Dispatcher.cpp +++ b/src/Dispatcher.cpp @@ -26,8 +26,11 @@ void Dispatcher::StartServer(StringRef persist_filename, } void Dispatcher::StartClient(const char* server_name, unsigned int port) { - DispatcherBase::StartClient(std::bind(&TCPConnector::connect, server_name, - static_cast(port), 1)); + std::string server_name_copy(server_name); + DispatcherBase::StartClient([=]() -> std::unique_ptr { + return TCPConnector::connect(server_name_copy.c_str(), + static_cast(port), 1); + }); } Dispatcher::Dispatcher()