From 74f636dfc41dee460b9f70adee063ee59166cef6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9o=20Lam?= Date: Sat, 3 Jun 2017 14:09:14 +0200 Subject: [PATCH] Analytics: Don't crash when a DNS resolve times out --- Source/Core/Common/Analytics.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Source/Core/Common/Analytics.cpp b/Source/Core/Common/Analytics.cpp index ed9f8cf112..2761e86943 100644 --- a/Source/Core/Common/Analytics.cpp +++ b/Source/Core/Common/Analytics.cpp @@ -192,6 +192,9 @@ HttpAnalyticsBackend::HttpAnalyticsBackend(const std::string& endpoint) CURL* curl = curl_easy_init(); if (curl) { + // libcurl may not have been built with async DNS support, so we disable + // signal handlers to avoid a possible and likely crash if a resolve times out. + curl_easy_setopt(curl, CURLOPT_NOSIGNAL, true); curl_easy_setopt(curl, CURLOPT_URL, endpoint.c_str()); curl_easy_setopt(curl, CURLOPT_POST, true); curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, &DummyCurlWriteFunction);