const std::vector<std::string> gadget_paths) {
std::vector<std::string> paths;
for (const auto& path : gadget_paths) {
- if (access(path.c_str(), F_OK) == 0)
+ if (access(path.c_str(), F_OK) == 0) {
paths.push_back(path);
- else
- paths.push_back(fs::path(path).parent_path().string());
+ } else {
+ auto parent_path = fs::path(path).parent_path().string();
+ if (access(parent_path.c_str(), F_OK) != 0) {
+ SECURE_LOGE("Failed to access directory(%s), errno(%d)",
+ parent_path.c_str(), errno);
+ } else {
+ paths.push_back(std::move(parent_path));
+ }
+ }
}
return paths;
std::vector<std::string> res;
for (auto& source : sources) {
if (access(source.c_str(), F_OK) != 0) {
- SECURE_LOGD("No such directory. path=%s", source.c_str());
+ SECURE_LOGE("Failed to access directory(%s), errno(%d)", source.c_str(),
+ errno);
continue;
}