summaryrefslogtreecommitdiff
path: root/src/libgit2/indexer.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/libgit2/indexer.c')
-rw-r--r--src/libgit2/indexer.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/libgit2/indexer.c b/src/libgit2/indexer.c
index 7357a4aa5..e559a1942 100644
--- a/src/libgit2/indexer.c
+++ b/src/libgit2/indexer.c
@@ -519,7 +519,13 @@ static int store_object(git_indexer *idx)
pentry->offset = entry_start;
if (git_oidmap_exists(idx->pack->idx_cache, &pentry->id)) {
- git_error_set(GIT_ERROR_INDEXER, "duplicate object %s found in pack", git_oid_tostr_s(&pentry->id));
+ const char *idstr = git_oid_tostr_s(&pentry->id);
+
+ if (!idstr)
+ git_error_set(GIT_ERROR_INDEXER, "failed to parse object id");
+ else
+ git_error_set(GIT_ERROR_INDEXER, "duplicate object %s found in pack", idstr);
+
git__free(pentry);
goto on_error;
}