if (!pEntry)
ThrowErr(Exc::InternalError, "Memory allocation failed for dir entry");
- struct dirent *pDirEntry = nullptr;
- while ((!readdir_r(dirp.get(), pEntry.get(), &pDirEntry)) && pDirEntry) {
+ while (struct dirent *pDirEntry = readdir(dirp.get())) {
/* run func for every file names in dirpath. d_name is only file name, not path */
func(pDirEntry->d_name);
}
}
while (true) {
- struct dirent *result = nullptr;
- auto ret = ::readdir_r(dirptr.get(), buf, &result);
- if (ret != 0) {
- LogError("readdir_r error on secure-storage dir: " << dirpath <<
- " with errno: " << errno);
- break;
- } else if (result == nullptr) {
- remove_path(dirpath, isAdminUser);
+ errno = 0;
+ struct dirent *result = ::readdir(dirptr.get());
+ if (result == nullptr) {
+ if (errno != 0)
+ LogError("readdir error on secure-storage dir: " << dirpath <<
+ " with errno: " << errno);
+ else
+ remove_path(dirpath, isAdminUser); // end of stream
+
break;
}