From 6e77ef4f748bdfa40505fc11c0a190e7a40fdb46 Mon Sep 17 00:00:00 2001 From: Timo Tietavainen Date: Thu, 5 Aug 2021 11:43:45 +0300 Subject: [PATCH] Fix SDL configuration file path Valgrind errors Fix Valgrind 'conditional jump or move depends on uninitialized value' errors what are related to boost::filesystem::directory_iterator by replacing the boost based implementation with standard C 'opendir()' and 'readdir()' implementation. Issue-ID: RIC-226 Signed-off-by: Timo Tietavainen Change-Id: I011dabaab6dcf602ff16e21e778dcbd12c1a9819 --- src/configurationpaths.cpp | 22 +++++++++------------- 1 file changed, 9 insertions(+), 13 deletions(-) diff --git a/src/configurationpaths.cpp b/src/configurationpaths.cpp index f4b15c9..b0d86ab 100644 --- a/src/configurationpaths.cpp +++ b/src/configurationpaths.cpp @@ -21,9 +21,7 @@ #include "config.h" #include "private/configurationpaths.hpp" -#include -#include -#include +#include #include using namespace shareddatalayer; @@ -32,19 +30,17 @@ namespace { void findConfigurationFilesFromDirectory(const std::string& path, std::vector& paths) { - try + DIR *dir; struct dirent *diread; + if ((dir = opendir(path.c_str())) != nullptr) { - for(const auto& i : boost::make_iterator_range(boost::filesystem::directory_iterator(path), { })) + while ((diread = readdir(dir)) != nullptr) { - const auto filename(i.path().filename().native()); - if ((!boost::filesystem::is_directory(i.path())) && - (filename[0] != '.') && - (boost::algorithm::ends_with(filename, ".json"))) - paths.push_back(i.path().native()); + if ((diread->d_type == DT_REG) && + (diread->d_name[0] != '.') && + (boost::algorithm::ends_with(diread->d_name, ".json"))) + paths.push_back(std::string(diread->d_name)); } - } - catch (const boost::filesystem::filesystem_error &) - { + closedir (dir); } } } -- 2.16.6