summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEdward Thomson <ethomson@edwardthomson.com>2018-01-31 09:30:51 -0800
committerEdward Thomson <ethomson@edwardthomson.com>2018-02-09 10:16:46 +0000
commitef9028642ab3805b139fbfed0244e48d96af3728 (patch)
tree7cc220d2d78cb93cc7b9717a5ec8a08ccebc3233
parent0fd0bfe435989b4947babfcd61b0bf573ff41e28 (diff)
downloadlibgit2-ef9028642ab3805b139fbfed0244e48d96af3728.tar.gz
odb: error when we can't alloc an object
At the moment, we're swallowing the allocation failure. We need to return the error to the caller.
-rw-r--r--src/odb.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/odb.c b/src/odb.c
index 775cf90de..e4ea5871f 100644
--- a/src/odb.c
+++ b/src/odb.c
@@ -1048,8 +1048,10 @@ static int odb_read_1(git_odb_object **out, git_odb *db, const git_oid *id,
}
giterr_clear();
- if ((object = odb_object__alloc(id, &raw)) == NULL)
+ if ((object = odb_object__alloc(id, &raw)) == NULL) {
+ error = -1;
goto out;
+ }
*out = git_cache_store_raw(odb_cache(db), object);
@@ -1175,8 +1177,10 @@ static int read_prefix_1(git_odb_object **out, git_odb *db,
}
}
- if ((object = odb_object__alloc(&found_full_oid, &raw)) == NULL)
+ if ((object = odb_object__alloc(&found_full_oid, &raw)) == NULL) {
+ error = -1;
goto out;
+ }
*out = git_cache_store_raw(odb_cache(db), object);