mirror of
https://git.proxmox.com/git/libgit2
synced 2026-01-04 19:28:32 +00:00
Restore missing lstat in index_entry_init
In an effort to remove duplicate code, I accidentally left the stat structure uninitialized in this function. This patch restores that data gathering.
This commit is contained in:
parent
3e72809b5e
commit
86e356ee51
19
src/index.c
19
src/index.c
@ -297,6 +297,8 @@ static int index_entry_init(git_index_entry **entry_out, git_index *index, const
|
||||
git_index_entry *entry = NULL;
|
||||
struct stat st;
|
||||
git_oid oid;
|
||||
const char *workdir;
|
||||
git_buf full_path = GIT_BUF_INIT;
|
||||
int error;
|
||||
|
||||
if (INDEX_OWNER(index) == NULL)
|
||||
@ -307,6 +309,23 @@ static int index_entry_init(git_index_entry **entry_out, git_index *index, const
|
||||
return git__throw(GIT_ERROR,
|
||||
"Failed to initialize entry. Invalid stage %i", stage);
|
||||
|
||||
workdir = git_repository_workdir(INDEX_OWNER(index));
|
||||
if (workdir == NULL)
|
||||
return git__throw(GIT_EBAREINDEX,
|
||||
"Failed to initialize entry. Cannot resolved workdir");
|
||||
|
||||
error = git_buf_joinpath(&full_path, workdir, rel_path);
|
||||
if (error < GIT_SUCCESS)
|
||||
return error;
|
||||
|
||||
if (p_lstat(full_path.ptr, &st) < 0) {
|
||||
error = git__throw(GIT_ENOTFOUND, "Failed to initialize entry. '%s' cannot be opened. %s", full_path.ptr, strerror(errno));
|
||||
git_buf_free(&full_path);
|
||||
return error;
|
||||
}
|
||||
|
||||
git_buf_free(&full_path); /* done with full path */
|
||||
|
||||
/* There is no need to validate the rel_path here, since it will be
|
||||
* immediately validated by the call to git_blob_create_fromfile.
|
||||
*/
|
||||
|
||||
Loading…
Reference in New Issue
Block a user