Commit 5a7cd1bc by Edward Thomson Committed by Edward Thomson

iterator: free paths when skipping them

parent 4b1b2bd9
...@@ -1198,7 +1198,9 @@ int git_path_dirload_with_stat( ...@@ -1198,7 +1198,9 @@ int git_path_dirload_with_stat(
if (error == GIT_ENOTFOUND) { if (error == GIT_ENOTFOUND) {
/* file was removed between readdir and lstat */ /* file was removed between readdir and lstat */
char *entry_path = git_vector_get(contents, i);
git_vector_remove(contents, i--); git_vector_remove(contents, i--);
git__free(entry_path);
} else { } else {
/* Treat the file as unreadable if we get any other error */ /* Treat the file as unreadable if we get any other error */
memset(&ps->st, 0, sizeof(ps->st)); memset(&ps->st, 0, sizeof(ps->st));
...@@ -1215,8 +1217,9 @@ int git_path_dirload_with_stat( ...@@ -1215,8 +1217,9 @@ int git_path_dirload_with_stat(
ps->path[ps->path_len] = '\0'; ps->path[ps->path_len] = '\0';
} }
else if (!S_ISREG(ps->st.st_mode) && !S_ISLNK(ps->st.st_mode)) { else if (!S_ISREG(ps->st.st_mode) && !S_ISLNK(ps->st.st_mode)) {
/* skip everything but dirs, plain files, and symlinks */ char *entry_path = git_vector_get(contents, i);
git_vector_remove(contents, i--); git_vector_remove(contents, i--);
git__free(entry_path);
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment