From afd71988ef74e331a0ac24c53f85175aee082a43 Mon Sep 17 00:00:00 2001 From: Harsh Sharma Date: Wed, 8 Jan 2020 13:09:53 -0600 Subject: Added error checking file read and stat --- src/Device/Device.cpp | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) (limited to 'src/Device') diff --git a/src/Device/Device.cpp b/src/Device/Device.cpp index b806f06..21ad9e8 100644 --- a/src/Device/Device.cpp +++ b/src/Device/Device.cpp @@ -48,16 +48,13 @@ void Device::getSystemTreeJson(const char * dir_name) { exitHandler(99); } while (1) { - struct dirent * entry; - const char * d_name; - entry = readdir (d); // Gets subsequent entries from "d" - if (!entry) { // If there are no more entries, exit + struct dirent * entry = readdir (d); // Gets subsequent entries from "d" + if (!entry) { // If there are no more entries, exit break; } - d_name = entry->d_name; // Get file name - if (!(entry->d_type & DT_DIR)) { - std::string fileData; - MTS::System::readFile(fullPath + "/" + std::string(d_name), fileData); + const char * d_name = entry->d_name; // Get file name + std::string fileData; + if (!(entry->d_type & DT_DIR) && (MTS::System::readFile(fullPath + "/" + std::string(d_name), fileData) == 0)) { fileData = MTS::Text::trim(fileData); if (strlen(dir_name) > 0) { if (std::binary_search(apIdentifiers.begin(), apIdentifiers.end(), dir_name) && !regex_match(d_name, apFilters)) { -- cgit v1.2.3