From 934112af5bed36a1273cc0d5588e27ab4825922b Mon Sep 17 00:00:00 2001 From: dranull <150595692+dranull@users.noreply.github.com> Date: Tue, 12 Dec 2023 16:43:38 +0000 Subject: [PATCH] config: Use canonical instead of read_symlink (#4136) --- src/main.cpp | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/main.cpp b/src/main.cpp index 0f68c3b2..86c44857 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -52,19 +52,21 @@ int main(int argc, char** argv) { return 1; } - std::string next_arg = std::next(it)->c_str(); + configPath = std::next(it)->c_str(); - if (std::filesystem::is_symlink(next_arg)) - next_arg = std::filesystem::read_symlink(next_arg); + try { + configPath = std::filesystem::canonical(configPath); - if (!std::filesystem::is_regular_file(next_arg)) { - std::cerr << "[ ERROR ] Config file '" << next_arg << "' doesn't exist!\n"; + if (!std::filesystem::is_regular_file(configPath)) { + throw std::exception(); + } + } catch (...) { + std::cerr << "[ ERROR ] Config file '" << configPath << "' doesn't exist!\n"; help(); return 1; } - configPath = std::filesystem::weakly_canonical(next_arg); Debug::log(LOG, "User-specified config location: '{}'", configPath); it++;