mirror of
https://github.com/libgit2/libgit2.git
synced 2026-01-25 02:56:17 +00:00
Merge pull request #5567 from lhchavez/msan
Make the tests pass cleanly with MemorySanitizer
This commit is contained in:
1
deps/zlib/deflate.c
vendored
1
deps/zlib/deflate.c
vendored
@@ -320,6 +320,7 @@ int ZEXPORT deflateInit2_(strm, level, method, windowBits, memLevel, strategy,
|
||||
|
||||
s->window = (Bytef *) ZALLOC(strm, s->w_size, 2*sizeof(Byte));
|
||||
s->prev = (Posf *) ZALLOC(strm, s->w_size, sizeof(Pos));
|
||||
memset(s->prev, 0, s->w_size * sizeof(Pos));
|
||||
s->head = (Posf *) ZALLOC(strm, s->hash_size, sizeof(Pos));
|
||||
|
||||
s->high_water = 0; /* nothing written to s->window yet */
|
||||
|
||||
@@ -160,8 +160,10 @@ int git_diff_file_content__init_from_src(
|
||||
|
||||
fc->flags |= GIT_DIFF_FLAG__FREE_BLOB;
|
||||
} else {
|
||||
int error;
|
||||
if ((error = git_odb_hash(&fc->file->id, src->buf, src->buflen, GIT_OBJECT_BLOB)) < 0)
|
||||
return error;
|
||||
fc->file->size = src->buflen;
|
||||
git_odb_hash(&fc->file->id, src->buf, src->buflen, GIT_OBJECT_BLOB);
|
||||
fc->file->id_abbrev = GIT_OID_HEXSZ;
|
||||
|
||||
fc->map.len = src->buflen;
|
||||
|
||||
@@ -427,7 +427,10 @@ static int store_object(git_indexer *idx)
|
||||
pentry = git__calloc(1, sizeof(struct git_pack_entry));
|
||||
GIT_ERROR_CHECK_ALLOC(pentry);
|
||||
|
||||
git_hash_final(&oid, &idx->hash_ctx);
|
||||
if (git_hash_final(&oid, &idx->hash_ctx)) {
|
||||
git__free(pentry);
|
||||
goto on_error;
|
||||
}
|
||||
entry_size = idx->off - entry_start;
|
||||
if (entry_start > UINT31_MAX) {
|
||||
entry->offset = UINT32_MAX;
|
||||
|
||||
@@ -86,7 +86,8 @@ int git_object__from_raw(
|
||||
GIT_ERROR_CHECK_ALLOC(object);
|
||||
object->cached.flags = GIT_CACHE_STORE_PARSED;
|
||||
object->cached.type = type;
|
||||
git_odb_hash(&object->cached.oid, data, size, type);
|
||||
if ((error = git_odb_hash(&object->cached.oid, data, size, type)) < 0)
|
||||
return error;
|
||||
|
||||
/* Parse raw object data */
|
||||
def = &git_objects_table[type];
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -304,7 +304,7 @@ static int read_loose_standard(git_rawobj *out, git_buf *obj)
|
||||
* (including the initial sequence in the head buffer).
|
||||
*/
|
||||
if (GIT_ADD_SIZET_OVERFLOW(&alloc_size, hdr.size, 1) ||
|
||||
(body = git__malloc(alloc_size)) == NULL) {
|
||||
(body = git__calloc(1, alloc_size)) == NULL) {
|
||||
error = -1;
|
||||
goto done;
|
||||
}
|
||||
@@ -386,8 +386,8 @@ static int read_header_loose_standard(
|
||||
git_rawobj *out, const unsigned char *data, size_t len)
|
||||
{
|
||||
git_zstream zs = GIT_ZSTREAM_INIT;
|
||||
obj_hdr hdr;
|
||||
unsigned char inflated[MAX_HEADER_LEN];
|
||||
obj_hdr hdr = {0};
|
||||
unsigned char inflated[MAX_HEADER_LEN] = {0};
|
||||
size_t header_len, inflated_len = sizeof(inflated);
|
||||
int error;
|
||||
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
int git_regexp_compile(git_regexp *r, const char *pattern, int flags)
|
||||
{
|
||||
int erroffset, cflags = 0;
|
||||
const char *error;
|
||||
const char *error = NULL;
|
||||
|
||||
if (flags & GIT_REGEXP_ICASE)
|
||||
cflags |= PCRE_CASELESS;
|
||||
@@ -41,7 +41,7 @@ int git_regexp_match(const git_regexp *r, const char *string)
|
||||
|
||||
int git_regexp_search(const git_regexp *r, const char *string, size_t nmatches, git_regmatch *matches)
|
||||
{
|
||||
int static_ovec[9], *ovec;
|
||||
int static_ovec[9] = {0}, *ovec;
|
||||
int error;
|
||||
size_t i;
|
||||
|
||||
|
||||
@@ -917,7 +917,7 @@ void test_checkout_tree__extremely_long_file_name(void)
|
||||
{
|
||||
/* A utf-8 string with 83 characters, but 249 bytes. */
|
||||
const char *longname = "\xe5\x8f\x97\xe5\x8f\x97\xe5\x8f\x97\xe5\x8f\x97\xe5\x8f\x97\xe5\x8f\x97\xe5\x8f\x97\xe5\x8f\x97\xe5\x8f\x97\xe5\x8f\x97\xe5\x8f\x97\xe5\x8f\x97\xe5\x8f\x97\xe5\x8f\x97\xe5\x8f\x97\xe5\x8f\x97\xe5\x8f\x97\xe5\x8f\x97\xe5\x8f\x97\xe5\x8f\x97\xe5\x8f\x97\xe5\x8f\x97\xe5\x8f\x97\xe5\x8f\x97\xe5\x8f\x97\xe5\x8f\x97\xe5\x8f\x97\xe5\x8f\x97\xe5\x8f\x97\xe5\x8f\x97\xe5\x8f\x97\xe5\x8f\x97\xe5\x8f\x97\xe5\x8f\x97\xe5\x8f\x97\xe5\x8f\x97\xe5\x8f\x97\xe5\x8f\x97\xe5\x8f\x97\xe5\x8f\x97\xe5\x8f\x97\xe5\x8f\x97\xe5\x8f\x97\xe5\x8f\x97\xe5\x8f\x97\xe5\x8f\x97\xe5\x8f\x97\xe5\x8f\x97\xe5\x8f\x97\xe5\x8f\x97\xe5\x8f\x97\xe5\x8f\x97\xe5\x8f\x97\xe5\x8f\x97\xe5\x8f\x97\xe5\x8f\x97\xe5\x8f\x97\xe5\x8f\x97\xe5\x8f\x97\xe5\x8f\x97\xe5\x8f\x97\xe5\x8f\x97\xe5\x8f\x97\xe5\x8f\x97\xe5\x8f\x97\xe5\x8f\x97\xe5\x8f\x97\xe5\x8f\x97\xe5\x8f\x97\xe5\x8f\x97\xe5\x8f\x97\xe5\x8f\x97\xe5\x8f\x97\xe5\x8f\x97\xe5\x8f\x97\xe5\x8f\x97\xe5\x8f\x97\xe5\x8f\x97\xe5\x8f\x97\xe5\x8f\x97\xe5\x8f\x97\xe5\x8f\x97\xe5\x8f\x97";
|
||||
char path[1024];
|
||||
char path[1024] = {0};
|
||||
|
||||
g_opts.checkout_strategy = GIT_CHECKOUT_FORCE;
|
||||
cl_git_pass(git_revparse_single(&g_object, g_repo, "long-file-name"));
|
||||
|
||||
@@ -949,7 +949,7 @@ void test_status_worktree__sorting_by_case(void)
|
||||
|
||||
void test_status_worktree__long_filenames(void)
|
||||
{
|
||||
char path[260*4+1];
|
||||
char path[260*4+1] = {0};
|
||||
const char *expected_paths[] = {path};
|
||||
const unsigned int expected_statuses[] = {GIT_STATUS_WT_NEW};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user