mirror of
https://github.com/neovim/neovim.git
synced 2025-02-25 18:55:25 -06:00
do_path_expand: Avoid non-readable directories. #3273
Closes https://github.com/neovim/neovim/issues/3164 Closes https://github.com/neovim/neovim/issues/3194 Closes https://github.com/neovim/neovim/issues/3221 Helped-by: @splinterofchaos Helped-by: @oni-link Helped-by: @justinmk
This commit is contained in:
parent
c51864b826
commit
77e416b711
@ -421,10 +421,10 @@ bool os_scandir(Directory *dir, const char *path)
|
|||||||
FUNC_ATTR_NONNULL_ALL
|
FUNC_ATTR_NONNULL_ALL
|
||||||
{
|
{
|
||||||
int r = uv_fs_scandir(&fs_loop, &dir->request, path, 0, NULL);
|
int r = uv_fs_scandir(&fs_loop, &dir->request, path, 0, NULL);
|
||||||
if (r <= 0) {
|
if (r < 0) {
|
||||||
os_closedir(dir);
|
os_closedir(dir);
|
||||||
}
|
}
|
||||||
return r > 0;
|
return r >= 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Increments the directory pointer.
|
/// Increments the directory pointer.
|
||||||
|
@ -612,8 +612,8 @@ static size_t do_path_expand(garray_T *gap, const char_u *path,
|
|||||||
*s = NUL;
|
*s = NUL;
|
||||||
|
|
||||||
Directory dir;
|
Directory dir;
|
||||||
if (os_scandir(&dir, *buf == NUL ? "." : (char *)buf)
|
char *dirpath = (*buf == NUL ? "." : (char *)buf);
|
||||||
|| os_isdir(*buf == NUL ? (char_u *)"." : (char_u *)buf)) {
|
if (os_file_is_readable(dirpath) && os_scandir(&dir, dirpath)) {
|
||||||
// Find all matching entries.
|
// Find all matching entries.
|
||||||
char_u *name;
|
char_u *name;
|
||||||
scandir_next_with_dots(NULL /* initialize */);
|
scandir_next_with_dots(NULL /* initialize */);
|
||||||
|
Loading…
Reference in New Issue
Block a user