wallet: Do not iterate a directory if having an error while accessing it

This change prevents infinite looping for, for example, system folders
on Windows.
This commit is contained in:
Hennadii Stepanov 2021-05-10 21:45:18 +03:00
parent 32692d2681
commit 29c9e2c2d2
No known key found for this signature in database
GPG key ID: 410108112E7EA81F

View file

@ -18,7 +18,12 @@ std::vector<fs::path> ListDatabases(const fs::path& wallet_dir)
for (auto it = fs::recursive_directory_iterator(wallet_dir, ec); it != fs::recursive_directory_iterator(); it.increment(ec)) {
if (ec) {
if (fs::is_directory(*it)) {
it.no_push();
LogPrintf("%s: %s %s -- skipping.\n", __func__, ec.message(), it->path().string());
} else {
LogPrintf("%s: %s %s\n", __func__, ec.message(), it->path().string());
}
continue;
}