diff options
-rw-r--r-- | src/index.c | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/src/index.c b/src/index.c index 2eb080924..34ebc3247 100644 --- a/src/index.c +++ b/src/index.c @@ -349,6 +349,14 @@ static git_index_entry *index_entry_dup(const git_index_entry *source_entry) return entry; } +static void index_entry_free(git_index_entry *entry) +{ + if (!entry) + return; + free(entry->path); + free(entry); +} + static int index_insert(git_index *index, const git_index_entry *source_entry, int replace) { git_index_entry *entry; @@ -402,15 +410,13 @@ static int index_insert(git_index *index, const git_index_entry *source_entry, i /* exists, replace it */ entry_array = (git_index_entry **) index->entries.contents; - free(entry_array[position]->path); - free(entry_array[position]); + index_entry_free(entry_array[position]); entry_array[position] = entry; return GIT_SUCCESS; cleanup_oom: - free(entry->path); - free(entry); + index_entry_free(entry); return GIT_ENOMEM;; } |