summaryrefslogtreecommitdiff
path: root/src/odb.c
diff options
context:
space:
mode:
authorlhchavez <lhchavez@lhchavez.com>2020-06-27 12:33:32 -0700
committerlhchavez <lhchavez@lhchavez.com>2020-06-30 06:25:10 -0700
commit3a197ea7ead1bc1b018eb809e92f418a00e5c3f8 (patch)
tree782324566a568dc45ff7ee7599eafa48a8f2442e /src/odb.c
parentd6c62852076005053be9169cb4f3cd9cf9db2aea (diff)
downloadlibgit2-3a197ea7ead1bc1b018eb809e92f418a00e5c3f8.tar.gz
Make the tests pass cleanly with MemorySanitizer
This change: * Initializes a few variables that were being read before being initialized. * Includes https://github.com/madler/zlib/pull/393. As such, it only works reliably with `-DUSE_BUNDLED_ZLIB=ON`.
Diffstat (limited to 'src/odb.c')
-rw-r--r--src/odb.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/odb.c b/src/odb.c
index 90565b75b..9d9530250 100644
--- a/src/odb.c
+++ b/src/odb.c
@@ -1283,12 +1283,13 @@ int git_odb_write(
git_oid *oid, git_odb *db, const void *data, size_t len, git_object_t type)
{
size_t i;
- int error = GIT_ERROR;
+ int error;
git_odb_stream *stream;
assert(oid && db);
- git_odb_hash(oid, data, len, type);
+ if ((error = git_odb_hash(oid, data, len, type)) < 0)
+ return error;
if (git_oid_is_zero(oid))
return error_null_oid(GIT_EINVALID, "cannot write object");
@@ -1296,7 +1297,7 @@ int git_odb_write(
if (git_odb__freshen(db, oid))
return 0;
- for (i = 0; i < db->backends.length && error < 0; ++i) {
+ for (i = 0, error = GIT_ERROR; i < db->backends.length && error < 0; ++i) {
backend_internal *internal = git_vector_get(&db->backends, i);
git_odb_backend *b = internal->backend;