Make fs::dir::open skip forward on failed metadata instead of crashing
This commit is contained in:
+6
-1
@@ -1258,7 +1258,12 @@ bool fs::dir::open(const std::string& path)
|
|||||||
}
|
}
|
||||||
|
|
||||||
struct ::stat file_info;
|
struct ::stat file_info;
|
||||||
verify("dir::read" HERE), ::fstatat(::dirfd(m_dd), found->d_name, &file_info, 0) == 0;
|
|
||||||
|
if (::fstatat(::dirfd(m_dd), found->d_name, &file_info, 0) != 0)
|
||||||
|
{
|
||||||
|
//failed metadata (broken symlink?), ignore and skip to next file
|
||||||
|
return read(info);
|
||||||
|
}
|
||||||
|
|
||||||
info.name = found->d_name;
|
info.name = found->d_name;
|
||||||
info.is_directory = S_ISDIR(file_info.st_mode);
|
info.is_directory = S_ISDIR(file_info.st_mode);
|
||||||
|
|||||||
Reference in New Issue
Block a user