index: Return `GIT_ENOTFOUND` when an entry cannot be opened
diff --git a/src/index.c b/src/index.c
index 986bcc0..af98cdc 100644
--- a/src/index.c
+++ b/src/index.c
@@ -427,7 +427,7 @@ static int index_init_entry(git_index_entry *entry, git_index *index, const char
git_path_join(full_path, index->repository->path_workdir, rel_path);
if (p_lstat(full_path, &st) < 0)
- return git__throw(GIT_EOSERR, "Failed to initialize entry. '%s' cannot be opened", full_path);
+ return git__throw(GIT_ENOTFOUND, "Failed to initialize entry. '%s' cannot be opened", full_path);
if (stage < 0 || stage > 3)
return git__throw(GIT_ERROR, "Failed to initialize entry. Invalid stage %i", stage);
diff --git a/src/oid.c b/src/oid.c
index 1f4a652..2348d14 100644
--- a/src/oid.c
+++ b/src/oid.c
@@ -341,6 +341,9 @@ int git_oid_shorten_add(git_oid_shorten *os, const char *text_oid)
if (os->full)
return GIT_ENOMEM;
+ if (text_oid == NULL)
+ return os->min_length;
+
idx = 0;
is_leaf = 0;