diff options
author | Edward Thomson <ethomson@edwardthomson.com> | 2018-02-01 05:11:05 -0800 |
---|---|---|
committer | Edward Thomson <ethomson@edwardthomson.com> | 2018-02-09 10:16:46 +0000 |
commit | 35ed256bb7c971e56f3f544c3529a53e39f39b28 (patch) | |
tree | 39b6d6548a2918b70998b5eb60f44ce5d465693f | |
parent | 59d99adcdeef4b08c5aec7fb3b000831e4fe21c5 (diff) | |
download | libgit2-35ed256bb7c971e56f3f544c3529a53e39f39b28.tar.gz |
git_odb__hashobj: provide errors messages on failures
Provide error messages on hash failures: assert when given invalid
input instead of failing with a user error; provide error messages
on program errors.
-rw-r--r-- | src/odb.c | 12 |
1 files changed, 8 insertions, 4 deletions
@@ -100,11 +100,15 @@ int git_odb__hashobj(git_oid *id, git_rawobj *obj) assert(id && obj); - if (!git_object_typeisloose(obj->type)) + if (!git_object_typeisloose(obj->type)) { + giterr_set(GITERR_INVALID, "invalid object type"); return -1; + } - if (!obj->data && obj->len != 0) + if (!obj->data && obj->len != 0) { + giterr_set(GITERR_INVALID, "invalid object"); return -1; + } hdrlen = git_odb__format_object_header(header, sizeof(header), obj->len, obj->type); @@ -806,7 +810,7 @@ int git_odb_exists_prefix( git_oid *out, git_odb *db, const git_oid *short_id, size_t len) { int error; - git_oid key = {{0}}; + git_oid key = {{0}}; assert(db && short_id); @@ -1106,7 +1110,7 @@ static int odb_otype_fast(git_otype *type_p, git_odb *db, const git_oid *id) *type_p = object->cached.type; return 0; } - + error = odb_read_header_1(&_unused, type_p, db, id, false); if (error == GIT_PASSTHROUGH) { |