diff options
author | Edward Thomson <ethomson@edwardthomson.com> | 2021-02-21 20:43:51 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-02-21 20:43:51 +0000 |
commit | 0fb58396835f789b3c662184003ff34cbf98d248 (patch) | |
tree | c1327c71124c095b1caa96c6554a41e14b066c71 | |
parent | 6e57010bfcde9d007d640b009d38864c6157450f (diff) | |
parent | 409305081372c7e881dfa8f35a2696366abc712b (diff) | |
download | libgit2-0fb58396835f789b3c662184003ff34cbf98d248.tar.gz |
Merge pull request #5801 from mamapanda/patch-1
index: Check git_vector_dup error in write_entries
-rw-r--r-- | src/index.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/src/index.c b/src/index.c index 7ebe07582..3d46030f7 100644 --- a/src/index.c +++ b/src/index.c @@ -2861,14 +2861,16 @@ static int write_entries(git_index *index, git_filebuf *file) { int error = 0; size_t i; - git_vector case_sorted, *entries; + git_vector case_sorted = GIT_VECTOR_INIT, *entries = NULL; git_index_entry *entry; const char *last = NULL; /* If index->entries is sorted case-insensitively, then we need * to re-sort it case-sensitively before writing */ if (index->ignore_case) { - git_vector_dup(&case_sorted, &index->entries, git_index_entry_cmp); + if ((error = git_vector_dup(&case_sorted, &index->entries, git_index_entry_cmp)) < 0) + goto done; + git_vector_sort(&case_sorted); entries = &case_sorted; } else { @@ -2885,9 +2887,8 @@ static int write_entries(git_index *index, git_filebuf *file) last = entry->path; } - if (index->ignore_case) - git_vector_free(&case_sorted); - +done: + git_vector_free(&case_sorted); return error; } |