From: Timo Tietavainen Date: Thu, 5 Aug 2021 08:43:45 +0000 (+0300) Subject: Fix SDL configuration file path Valgrind errors X-Git-Tag: 1.4.0~2 X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=commitdiff_plain;h=6e77ef4f748bdfa40505fc11c0a190e7a40fdb46;p=ric-plt%2Fsdl.git 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 --- 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); } } }