From 0eaec3a16288f9590e562dff7263b3d804b47ed8 Mon Sep 17 00:00:00 2001 From: Tindy X <49061470+tindy2013@users.noreply.github.com> Date: Wed, 26 Feb 2020 23:46:54 +0800 Subject: [PATCH] Fix a bug Fix a crash when no nodes are found when generating Quantumult (X) node lists. --- src/subexport.cpp | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/src/subexport.cpp b/src/subexport.cpp index 210e93a..44122e7 100644 --- a/src/subexport.cpp +++ b/src/subexport.cpp @@ -1415,11 +1415,13 @@ std::string netchToQuan(std::vector &nodes, std::string &base_conf, st if(ext.nodelist) { string_array allnodes; + std::string allLinks; ini.GetAll("SERVER", "{NONAME}", allnodes); - std::string allLinks = std::accumulate(std::next(allnodes.begin()), allnodes.end(), allnodes[0], [](std::string a, std::string b) - { - return std::move(a) + "\n" + std::move(b); - }); + if(allnodes.size()) + allLinks = std::accumulate(std::next(allnodes.begin()), allnodes.end(), allnodes[0], [](std::string a, std::string b) + { + return std::move(a) + "\n" + std::move(b); + }); return base64_encode(allLinks); } return ini.ToString(); @@ -1639,11 +1641,13 @@ std::string netchToQuanX(std::vector &nodes, std::string &base_conf, s if(ext.nodelist) { string_array allnodes; + std::string allLinks; ini.GetAll("server_local", "{NONAME}", allnodes); - std::string allLinks = std::accumulate(std::next(allnodes.begin()), allnodes.end(), allnodes[0], [](std::string a, std::string b) - { - return std::move(a) + "\n" + std::move(b); - }); + if(allnodes.size()) + allLinks = std::accumulate(std::next(allnodes.begin()), allnodes.end(), allnodes[0], [](std::string a, std::string b) + { + return std::move(a) + "\n" + std::move(b); + }); return allLinks; } return ini.ToString();