From 3dfeda9cea0aa3d5ef8d0423a52e6d97ab8fa325 Mon Sep 17 00:00:00 2001 From: Chris Miles Date: Sat, 10 Dec 2022 17:31:18 -0600 Subject: [PATCH] [Tasks] Crash fix with data input sanitization (#2629) --- common/strings.cpp | 2 +- zone/task_manager.cpp | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/common/strings.cpp b/common/strings.cpp index 2e21eb401..deca2ca9f 100644 --- a/common/strings.cpp +++ b/common/strings.cpp @@ -192,7 +192,7 @@ std::string Strings::Escape(const std::string &s) bool Strings::IsNumber(const std::string &s) { try { - auto r = stod(s); + auto r = stoi(s); return true; } catch (std::exception &) { diff --git a/zone/task_manager.cpp b/zone/task_manager.cpp index 57ff5bbc3..9e8f0ffb3 100644 --- a/zone/task_manager.cpp +++ b/zone/task_manager.cpp @@ -232,7 +232,9 @@ bool TaskManager::LoadTasks(int single_task) ); for (auto &&e : zones) { - ad->zone_ids.push_back(std::stoi(e)); + if (Strings::IsNumber(e)) { + ad->zone_ids.push_back(std::stoi(e)); + } } ad->optional = a.optional;