From e5722e1d9acd9c79874678139f48fe46a2ef7829 Mon Sep 17 00:00:00 2001 From: Ted John Date: Tue, 19 Jul 2016 21:53:18 +0100 Subject: [PATCH] Fix #4139: Windows first time firewall launch std::string can not handle nullptr as argument. Create and use helper method instead. --- src/core/String.cpp | 6 ++++++ src/core/String.hpp | 8 ++++---- src/network/network.cpp | 10 +++++----- 3 files changed, 15 insertions(+), 9 deletions(-) diff --git a/src/core/String.cpp b/src/core/String.cpp index aea62f553a..d563715934 100644 --- a/src/core/String.cpp +++ b/src/core/String.cpp @@ -28,6 +28,12 @@ extern "C" namespace String { + std::string ToStd(const utf8 * str) + { + if (str == nullptr) return std::string(); + else return std::string(str); + } + bool IsNullOrEmpty(const utf8 * str) { return str == nullptr || str[0] == '\0'; diff --git a/src/core/String.hpp b/src/core/String.hpp index 5a140dc1d2..ebd5840d5a 100644 --- a/src/core/String.hpp +++ b/src/core/String.hpp @@ -16,15 +16,15 @@ #pragma once -extern "C" -{ - #include "../common.h" -} +#include +#include "../common.h" namespace String { constexpr const utf8 * Empty = ""; + std::string ToStd(const utf8 * str); + bool IsNullOrEmpty(const utf8 * str); bool Equals(const utf8 * a, const utf8 * b, bool ignoreCase = false); bool StartsWith(const utf8 * str, const utf8 * match, bool ignoreCase = false); diff --git a/src/network/network.cpp b/src/network/network.cpp index 0cbc5b4d73..18116754ba 100644 --- a/src/network/network.cpp +++ b/src/network/network.cpp @@ -298,11 +298,11 @@ bool Network::BeginServer(unsigned short port, const char* address) return false; } - ServerName = gConfigNetwork.server_name; - ServerDescription = gConfigNetwork.server_description; - ServerProviderName = gConfigNetwork.provider_name; - ServerProviderEmail = gConfigNetwork.provider_email; - ServerProviderWebsite = gConfigNetwork.provider_website; + ServerName = String::ToStd(gConfigNetwork.server_name); + ServerDescription = String::ToStd(gConfigNetwork.server_description); + ServerProviderName = String::ToStd(gConfigNetwork.provider_name); + ServerProviderEmail = String::ToStd(gConfigNetwork.provider_email); + ServerProviderWebsite = String::ToStd(gConfigNetwork.provider_website); cheats_reset(); LoadGroups();