mirror of
https://git.proxmox.com/git/libgit2
synced 2025-06-21 06:47:22 +00:00
iterator: skip over errors in diriter init
An error here will typically mean that the directory was removed between the time we iterated the parent and the time we wanted to visit it in which case we should ignore it. Other kinds of errors such as permissions (or transient errors) also better dealt with by pretending we didn't see it.
This commit is contained in:
parent
42156d5617
commit
12786e0f7c
@ -1027,8 +1027,11 @@ static int dirload_with_stat(
|
|||||||
strncomp = (flags & GIT_PATH_DIR_IGNORE_CASE) != 0 ?
|
strncomp = (flags & GIT_PATH_DIR_IGNORE_CASE) != 0 ?
|
||||||
git__strncasecmp : git__strncmp;
|
git__strncasecmp : git__strncmp;
|
||||||
|
|
||||||
if ((error = git_path_diriter_init(&diriter, dirpath, flags)) < 0)
|
/* Any error here is equivalent to the dir not existing, skip over it */
|
||||||
|
if ((error = git_path_diriter_init(&diriter, dirpath, flags)) < 0) {
|
||||||
|
error = GIT_ENOTFOUND;
|
||||||
goto done;
|
goto done;
|
||||||
|
}
|
||||||
|
|
||||||
while ((error = git_path_diriter_next(&diriter)) == 0) {
|
while ((error = git_path_diriter_next(&diriter)) == 0) {
|
||||||
if ((error = git_path_diriter_fullpath(&path, &path_len, &diriter)) < 0)
|
if ((error = git_path_diriter_fullpath(&path, &path_len, &diriter)) < 0)
|
||||||
|
Loading…
Reference in New Issue
Block a user