diff options
author | Edward Thomson <ethomson@edwardthomson.com> | 2019-01-26 19:43:33 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-01-26 19:43:33 +0000 |
commit | b1e286254a17fe2801979cd6d1f64eac77b2801d (patch) | |
tree | 609f43259c87847cd06cd29b4cdf960b33859557 | |
parent | f56634f803eecb2df31461de32b7f477097c2a73 (diff) | |
parent | fac08837a50993be4d8fa023c8fc13408180ecc1 (diff) | |
download | libgit2-b1e286254a17fe2801979cd6d1f64eac77b2801d.tar.gz |
Merge pull request #4950 from libgit2/ethomson/warnings
Clean up some warnings
-rw-r--r-- | CMakeLists.txt | 3 | ||||
-rw-r--r-- | src/apply.c | 2 | ||||
-rw-r--r-- | src/attr_file.c | 7 | ||||
-rw-r--r-- | src/blame.c | 7 | ||||
-rw-r--r-- | src/blob.c | 14 | ||||
-rw-r--r-- | src/blob.h | 8 | ||||
-rw-r--r-- | src/buffer.c | 2 | ||||
-rw-r--r-- | src/delta.c | 15 | ||||
-rw-r--r-- | src/describe.c | 4 | ||||
-rw-r--r-- | src/diff.c | 2 | ||||
-rw-r--r-- | src/diff_generate.c | 9 | ||||
-rw-r--r-- | src/diff_stats.c | 5 | ||||
-rw-r--r-- | src/filter.c | 2 | ||||
-rw-r--r-- | src/index.c | 2 | ||||
-rw-r--r-- | src/iterator.c | 13 | ||||
-rw-r--r-- | src/notes.c | 7 | ||||
-rw-r--r-- | src/odb.c | 12 | ||||
-rw-r--r-- | src/odb_loose.c | 2 | ||||
-rw-r--r-- | src/patch_parse.c | 2 | ||||
-rw-r--r-- | src/reader.c | 10 | ||||
-rw-r--r-- | src/streams/mbedtls.c | 12 | ||||
-rw-r--r-- | src/streams/openssl.c | 4 | ||||
-rw-r--r-- | src/streams/socket.c | 5 | ||||
-rw-r--r-- | src/streams/stransport.c | 5 | ||||
-rw-r--r-- | src/transports/git.c | 14 | ||||
-rw-r--r-- | src/tree.c | 4 | ||||
-rw-r--r-- | src/win32/msvc-compat.h | 6 | ||||
-rw-r--r-- | tests/core/zstream.c | 2 | ||||
-rw-r--r-- | tests/index/racy.c | 4 |
29 files changed, 124 insertions, 60 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index eecc22d20..0e0f296a2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -164,6 +164,9 @@ IF (MSVC) # /O1 - Optimize for size SET(CMAKE_C_FLAGS_MINSIZEREL "/DNDEBUG /O1 /Oy /GL /Gy ${CRT_FLAG_RELEASE}") + # /IGNORE:4221 - Ignore empty compilation units + SET(CMAKE_STATIC_LINKER_FLAGS "/IGNORE:4221") + # /DYNAMICBASE - Address space load randomization (ASLR) # /NXCOMPAT - Data execution prevention (DEP) # /LARGEADDRESSAWARE - >2GB user address space on x86 diff --git a/src/apply.c b/src/apply.c index bd0ba6a89..d72aa8374 100644 --- a/src/apply.c +++ b/src/apply.c @@ -138,7 +138,7 @@ static bool find_hunk_linenum( static int update_hunk( patch_image *image, - unsigned int linenum, + size_t linenum, patch_image *preimage, patch_image *postimage) { diff --git a/src/attr_file.c b/src/attr_file.c index bd69c631b..40c72ea04 100644 --- a/src/attr_file.c +++ b/src/attr_file.c @@ -12,6 +12,7 @@ #include "attrcache.h" #include "git2/blob.h" #include "git2/tree.h" +#include "blob.h" #include "index.h" #include <ctype.h> @@ -119,6 +120,7 @@ int git_attr_file__load( break; case GIT_ATTR_FILE__FROM_INDEX: { git_oid id; + git_off_t blobsize; if ((error = attr_file_oid_from_index(&id, repo, entry->path)) < 0 || (error = git_blob_lookup(&blob, repo, &id)) < 0) @@ -126,7 +128,10 @@ int git_attr_file__load( /* Do not assume that data straight from the ODB is NULL-terminated; * copy the contents of a file to a buffer to work on */ - git_buf_put(&content, git_blob_rawcontent(blob), git_blob_rawsize(blob)); + blobsize = git_blob_rawsize(blob); + + GIT_ERROR_CHECK_BLOBSIZE(blobsize); + git_buf_put(&content, git_blob_rawcontent(blob), (size_t)blobsize); break; } case GIT_ATTR_FILE__FROM_FILE: { diff --git a/src/blame.c b/src/blame.c index 4e9829506..be10c15d6 100644 --- a/src/blame.c +++ b/src/blame.c @@ -41,7 +41,12 @@ static int hunk_cmp(const void *_a, const void *_b) git_blame_hunk *a = (git_blame_hunk*)_a, *b = (git_blame_hunk*)_b; - return a->final_start_line_number - b->final_start_line_number; + if (a->final_start_line_number > b->final_start_line_number) + return 1; + else if (a->final_start_line_number < b->final_start_line_number) + return -1; + else + return 0; } static bool hunk_ends_at_or_before_line(git_blame_hunk *hunk, size_t line) diff --git a/src/blob.c b/src/blob.c index 79748af22..566d24b8e 100644 --- a/src/blob.c +++ b/src/blob.c @@ -36,10 +36,10 @@ git_off_t git_blob_rawsize(const git_blob *blob) int git_blob__getbuf(git_buf *buffer, git_blob *blob) { - return git_buf_set( - buffer, - git_blob_rawcontent(blob), - git_blob_rawsize(blob)); + git_off_t size = git_blob_rawsize(blob); + + GIT_ERROR_CHECK_BLOBSIZE(size); + return git_buf_set(buffer, git_blob_rawcontent(blob), (size_t)size); } void git_blob__free(void *_blob) @@ -389,12 +389,14 @@ cleanup: int git_blob_is_binary(const git_blob *blob) { git_buf content = GIT_BUF_INIT; + git_off_t size; assert(blob); + size = git_blob_rawsize(blob); + git_buf_attach_notowned(&content, git_blob_rawcontent(blob), - min(git_blob_rawsize(blob), - GIT_FILTER_BYTES_TO_CHECK_NUL)); + (size_t)min(size, GIT_FILTER_BYTES_TO_CHECK_NUL)); return git_buf_text_is_binary(&content); } diff --git a/src/blob.h b/src/blob.h index f644ec583..b9aa33004 100644 --- a/src/blob.h +++ b/src/blob.h @@ -27,6 +27,14 @@ struct git_blob { unsigned int raw:1; }; +#define GIT_ERROR_CHECK_BLOBSIZE(n) \ + do { \ + if (!git__is_sizet(n)) { \ + git_error_set(GIT_ERROR_NOMEMORY, "blob contents too large to fit in memory"); \ + return -1; \ + } \ + } while(0) + void git_blob__free(void *blob); int git_blob__parse(void *blob, git_odb_object *obj); int git_blob__parse_raw(void *blob, const char *data, size_t size); diff --git a/src/buffer.c b/src/buffer.c index 0cc7f2b35..51fb48a45 100644 --- a/src/buffer.c +++ b/src/buffer.c @@ -440,7 +440,7 @@ int git_buf_decode_base85( acc += de; - cnt = (output_len < 4) ? output_len : 4; + cnt = (output_len < 4) ? (int)output_len : 4; output_len -= cnt; do { acc = (acc << 8) | (acc >> 24); diff --git a/src/delta.c b/src/delta.c index 9e8d1c030..1ff7752c7 100644 --- a/src/delta.c +++ b/src/delta.c @@ -138,7 +138,7 @@ static int lookup_index_alloc( *out = git__malloc(index_len); GIT_ERROR_CHECK_ALLOC(*out); - *out_len = index_len; + *out_len = (unsigned long)index_len; return 0; } @@ -286,6 +286,13 @@ int git_delta_create_from_index( if (!trg_buf || !trg_size) return 0; + if (index->src_size > UINT_MAX || + trg_size > UINT_MAX || + max_size > (UINT_MAX - MAX_OP_SIZE - 1)) { + git_error_set(GIT_ERROR_INVALID, "buffer sizes too large for delta processing"); + return -1; + } + bufpos = 0; bufsize = 8192; if (max_size && bufsize >= max_size) @@ -294,7 +301,7 @@ int git_delta_create_from_index( GIT_ERROR_CHECK_ALLOC(buf); /* store reference buffer size */ - i = index->src_size; + i = (unsigned int)index->src_size; while (i >= 0x80) { buf[bufpos++] = i | 0x80; i >>= 7; @@ -302,7 +309,7 @@ int git_delta_create_from_index( buf[bufpos++] = i; /* store target buffer size */ - i = trg_size; + i = (unsigned int)trg_size; while (i >= 0x80) { buf[bufpos++] = i | 0x80; i >>= 7; @@ -423,7 +430,7 @@ int git_delta_create_from_index( void *tmp = buf; bufsize = bufsize * 3 / 2; if (max_size && bufsize >= max_size) - bufsize = max_size + MAX_OP_SIZE + 1; + bufsize = (unsigned int)(max_size + MAX_OP_SIZE + 1); if (max_size && bufpos > max_size) break; buf = git__realloc(buf, bufsize); diff --git a/src/describe.c b/src/describe.c index 7e57d64e7..893ca646e 100644 --- a/src/describe.c +++ b/src/describe.c @@ -366,7 +366,7 @@ static int find_unique_abbrev_size( int *out, git_repository *repo, const git_oid *oid_in, - int abbreviated_size) + unsigned int abbreviated_size) { size_t size = abbreviated_size; git_odb *odb; @@ -401,7 +401,7 @@ static int show_suffix( int depth, git_repository *repo, const git_oid* id, - size_t abbrev_size) + unsigned int abbrev_size) { int error, size = 0; diff --git a/src/diff.c b/src/diff.c index 5abb4d183..d2e129d1b 100644 --- a/src/diff.c +++ b/src/diff.c @@ -386,7 +386,7 @@ static int flush_hunk(git_oid *result, git_hash_ctx *ctx) for (i = 0; i < GIT_OID_RAWSZ; i++) { carry += result->id[i] + hash.id[i]; - result->id[i] = carry; + result->id[i] = (unsigned char)carry; carry >>= 8; } diff --git a/src/diff_generate.c b/src/diff_generate.c index acc6c341b..5579dc214 100644 --- a/src/diff_generate.c +++ b/src/diff_generate.c @@ -564,9 +564,14 @@ int git_diff__oid_for_file( { git_index_entry entry; + if (size < 0 || size > UINT32_MAX) { + git_error_set(GIT_ERROR_NOMEMORY, "file size overflow (for 32-bits) on '%s'", path); + return -1; + } + memset(&entry, 0, sizeof(entry)); entry.mode = mode; - entry.file_size = size; + entry.file_size = (uint32_t)size; entry.path = (char *)path; return git_diff__oid_for_entry(out, diff, &entry, mode, NULL); @@ -628,7 +633,7 @@ int git_diff__oid_for_entry( error = git_odb__hashlink(out, full_path.ptr); diff->base.perf.oid_calculations++; } else if (!git__is_sizet(entry.file_size)) { - git_error_set(GIT_ERROR_OS, "file size overflow (for 32-bits) on '%s'", + git_error_set(GIT_ERROR_NOMEMORY, "file size overflow (for 32-bits) on '%s'", entry.path); error = -1; } else if (!(error = git_filter_list_load(&fl, diff --git a/src/diff_stats.c b/src/diff_stats.c index 9cd800651..a0681712f 100644 --- a/src/diff_stats.c +++ b/src/diff_stats.c @@ -54,7 +54,8 @@ int git_diff_file_stats__full_to_buf( size_t width) { const char *old_path = NULL, *new_path = NULL; - size_t padding, old_size, new_size; + size_t padding; + git_off_t old_size, new_size; old_path = delta->old_file.path; new_path = delta->new_file.path; @@ -96,7 +97,7 @@ int git_diff_file_stats__full_to_buf( if (delta->flags & GIT_DIFF_FLAG_BINARY) { if (git_buf_printf(out, - "Bin %" PRIuZ " -> %" PRIuZ " bytes", old_size, new_size) < 0) + "Bin %" PRId64 " -> %" PRId64 " bytes", old_size, new_size) < 0) goto on_error; } else { diff --git a/src/filter.c b/src/filter.c index 4c9c7416b..33ddfe2a5 100644 --- a/src/filter.c +++ b/src/filter.c @@ -974,7 +974,7 @@ int git_filter_list_stream_file( } if (readlen < 0) - error = readlen; + error = -1; done: if (initialized) diff --git a/src/index.c b/src/index.c index 8b753234f..7f865c2c7 100644 --- a/src/index.c +++ b/src/index.c @@ -2475,7 +2475,7 @@ static int read_entry( if (varint_len == 0 || last_len < strip_len) return index_error_invalid("incorrect prefix length"); - prefix_len = last_len - strip_len; + prefix_len = last_len - (size_t)strip_len; suffix_len = strlen(path_ptr + varint_len); GIT_ERROR_CHECK_ALLOC_ADD(&path_len, prefix_len, suffix_len); diff --git a/src/iterator.c b/src/iterator.c index 90bbb813b..0db929211 100644 --- a/src/iterator.c +++ b/src/iterator.c @@ -1485,8 +1485,15 @@ static void filesystem_iterator_set_current( filesystem_iterator *iter, filesystem_iterator_entry *entry) { - iter->entry.ctime.seconds = entry->st.st_ctime; - iter->entry.mtime.seconds = entry->st.st_mtime; + /* + * Index entries are limited to 32 bit timestamps. We can safely + * cast this since workdir times are only used in the cache; any + * mismatch will cause a hash recomputation which is unfortunate + * but affects only people who set their filetimes to 2038. + * (Same with the file size.) + */ + iter->entry.ctime.seconds = (int32_t)entry->st.st_ctime; + iter->entry.mtime.seconds = (int32_t)entry->st.st_mtime; #if defined(GIT_USE_NSEC) iter->entry.ctime.nanoseconds = entry->st.st_ctime_nsec; @@ -1501,7 +1508,7 @@ static void filesystem_iterator_set_current( iter->entry.mode = git_futils_canonical_mode(entry->st.st_mode); iter->entry.uid = entry->st.st_uid; iter->entry.gid = entry->st.st_gid; - iter->entry.file_size = entry->st.st_size; + iter->entry.file_size = (uint32_t)entry->st.st_size; if (iter->base.flags & GIT_ITERATOR_INCLUDE_HASH) git_oid_cpy(&iter->entry.id, &entry->id); diff --git a/src/notes.c b/src/notes.c index 2931353d3..8e622c64a 100644 --- a/src/notes.c +++ b/src/notes.c @@ -12,6 +12,7 @@ #include "config.h" #include "iterator.h" #include "signature.h" +#include "blob.h" static int note_error_notfound(void) { @@ -319,6 +320,7 @@ static int note_new( git_blob *blob) { git_note *note = NULL; + git_off_t blobsize; note = git__malloc(sizeof(git_note)); GIT_ERROR_CHECK_ALLOC(note); @@ -329,7 +331,10 @@ static int note_new( git_signature_dup(¬e->committer, git_commit_committer(commit)) < 0) return -1; - note->message = git__strndup(git_blob_rawcontent(blob), git_blob_rawsize(blob)); + blobsize = git_blob_rawsize(blob); + GIT_ERROR_CHECK_BLOBSIZE(blobsize); + + note->message = git__strndup(git_blob_rawcontent(blob), (size_t)blobsize); GIT_ERROR_CHECK_ALLOC(note->message); *out = note; @@ -15,6 +15,7 @@ #include "delta.h" #include "filter.h" #include "repository.h" +#include "blob.h" #include "git2/odb_backend.h" #include "git2/oid.h" @@ -387,18 +388,17 @@ static void fake_wstream__free(git_odb_stream *_stream) static int init_fake_wstream(git_odb_stream **stream_p, git_odb_backend *backend, git_off_t size, git_object_t type) { fake_wstream *stream; + size_t blobsize; - if (!git__is_ssizet(size)) { - git_error_set(GIT_ERROR_ODB, "object size too large to keep in memory"); - return -1; - } + GIT_ERROR_CHECK_BLOBSIZE(size); + blobsize = (size_t)size; stream = git__calloc(1, sizeof(fake_wstream)); GIT_ERROR_CHECK_ALLOC(stream); - stream->size = size; + stream->size = blobsize; stream->type = type; - stream->buffer = git__malloc(size); + stream->buffer = git__malloc(blobsize); if (stream->buffer == NULL) { git__free(stream); return -1; diff --git a/src/odb_loose.c b/src/odb_loose.c index 649bc56cb..5bdf884d3 100644 --- a/src/odb_loose.c +++ b/src/odb_loose.c @@ -183,7 +183,7 @@ static int parse_header( return -1; } - out->size = size; + out->size = (size_t)size; if (GIT_ADD_SIZET_OVERFLOW(out_len, i, 1)) goto on_error; diff --git a/src/patch_parse.c b/src/patch_parse.c index 1bf3ad861..647929fd5 100644 --- a/src/patch_parse.c +++ b/src/patch_parse.c @@ -282,7 +282,7 @@ static int parse_header_percent(uint16_t *out, git_patch_parse_ctx *ctx) if (val < 0 || val > 100) return -1; - *out = val; + *out = (uint16_t)val; return 0; } diff --git a/src/reader.c b/src/reader.c index c374c4687..1a4844698 100644 --- a/src/reader.c +++ b/src/reader.c @@ -32,11 +32,17 @@ static int tree_reader_read( tree_reader *reader = (tree_reader *)_reader; git_tree_entry *tree_entry = NULL; git_blob *blob = NULL; + git_off_t blobsize; int error; if ((error = git_tree_entry_bypath(&tree_entry, reader->tree, filename)) < 0 || - (error = git_blob_lookup(&blob, git_tree_owner(reader->tree), git_tree_entry_id(tree_entry))) < 0 || - (error = git_buf_set(out, git_blob_rawcontent(blob), git_blob_rawsize(blob))) < 0) + (error = git_blob_lookup(&blob, git_tree_owner(reader->tree), git_tree_entry_id(tree_entry))) < 0) + goto done; + + blobsize = git_blob_rawsize(blob); + GIT_ERROR_CHECK_BLOBSIZE(blobsize); + + if ((error = git_buf_set(out, git_blob_rawcontent(blob), (size_t)blobsize)) < 0) goto done; if (out_id) diff --git a/src/streams/mbedtls.c b/src/streams/mbedtls.c index 45f5b6e75..48d21dd69 100644 --- a/src/streams/mbedtls.c +++ b/src/streams/mbedtls.c @@ -303,22 +303,22 @@ static int mbedtls_set_proxy(git_stream *stream, const git_proxy_options *proxy_ return git_stream_set_proxy(st->io, proxy_options); } -ssize_t mbedtls_stream_write(git_stream *stream, const char *data, size_t len, int flags) +ssize_t mbedtls_stream_write(git_stream *stream, const char *data, size_t data_len, int flags) { - size_t read = 0; + ssize_t written = 0, len = min(data_len, SSIZE_MAX); mbedtls_stream *st = (mbedtls_stream *) stream; GIT_UNUSED(flags); do { - int error = mbedtls_ssl_write(st->ssl, (const unsigned char *)data + read, len - read); + int error = mbedtls_ssl_write(st->ssl, (const unsigned char *)data + written, len - written); if (error <= 0) { return ssl_set_error(st->ssl, error); } - read += error; - } while (read < len); + written += error; + } while (written < len); - return read; + return written; } ssize_t mbedtls_stream_read(git_stream *stream, void *data, size_t len) diff --git a/src/streams/openssl.c b/src/streams/openssl.c index 6f826ef5e..589b8d1f3 100644 --- a/src/streams/openssl.c +++ b/src/streams/openssl.c @@ -644,10 +644,10 @@ static int openssl_set_proxy(git_stream *stream, const git_proxy_options *proxy_ return git_stream_set_proxy(st->io, proxy_opts); } -ssize_t openssl_write(git_stream *stream, const char *data, size_t len, int flags) +ssize_t openssl_write(git_stream *stream, const char *data, size_t data_len, int flags) { openssl_stream *st = (openssl_stream *) stream; - int ret; + int ret, len = min(data_len, INT_MAX); GIT_UNUSED(flags); diff --git a/src/streams/socket.c b/src/streams/socket.c index 1c48a0ea8..e46fcd219 100644 --- a/src/streams/socket.c +++ b/src/streams/socket.c @@ -130,10 +130,9 @@ int socket_connect(git_stream *stream) return 0; } -ssize_t socket_write(git_stream *stream, const char *data, size_t len, int flags) +ssize_t socket_write(git_stream *stream, const char *data, size_t data_len, int flags) { - ssize_t ret; - size_t off = 0; + ssize_t ret, off = 0, len = min(data_len, SSIZE_MAX); git_socket_stream *st = (git_socket_stream *) stream; while (off < len) { diff --git a/src/streams/stransport.c b/src/streams/stransport.c index da1156ca3..a999bb5a0 100644 --- a/src/streams/stransport.c +++ b/src/streams/stransport.c @@ -164,11 +164,12 @@ static ssize_t stransport_write(git_stream *stream, const char *data, size_t len GIT_UNUSED(flags); - data_len = len; + data_len = min(len, SSIZE_MAX); if ((ret = SSLWrite(st->ctx, data, data_len, &processed)) != noErr) return stransport_error(ret); - return processed; + assert(processed < SSIZE_MAX); + return (ssize_t)processed; } /* diff --git a/src/transports/git.c b/src/transports/git.c index b3f563d95..8d5a9d903 100644 --- a/src/transports/git.c +++ b/src/transports/git.c @@ -75,14 +75,17 @@ static int gen_proto(git_buf *request, const char *cmd, const char *url) static int send_command(git_proto_stream *s) { - int error; git_buf request = GIT_BUF_INIT; + size_t write_size; + int error; error = gen_proto(&request, s->cmd, s->url); if (error < 0) goto cleanup; - error = git_stream_write(s->io, request.ptr, request.size, 0); + write_size = min(request.size, INT_MAX); + error = (int)git_stream_write(s->io, request.ptr, write_size, 0); + if (error >= 0) s->sent_command = 1; @@ -119,15 +122,16 @@ static int git_proto_stream_read( static int git_proto_stream_write( git_smart_subtransport_stream *stream, const char *buffer, - size_t len) + size_t buffer_len) { - int error; git_proto_stream *s = (git_proto_stream *)stream; + size_t len = min(buffer_len, INT_MAX); + int error; if (!s->sent_command && (error = send_command(s)) < 0) return error; - return git_stream_write(s->io, buffer, len, 0); + return (int)git_stream_write(s->io, buffer, len, 0); } static void git_proto_stream_free(git_smart_subtransport_stream *stream) diff --git a/src/tree.c b/src/tree.c index d3b11f8c7..466180451 100644 --- a/src/tree.c +++ b/src/tree.c @@ -403,7 +403,7 @@ int git_tree__parse_raw(void *_tree, const char *data, size_t size) if ((nul = memchr(buffer, 0, buffer_end - buffer)) == NULL) return tree_error("failed to parse tree: object is corrupted", NULL); - if ((filename_len = nul - buffer) == 0) + if ((filename_len = nul - buffer) == 0 || filename_len > UINT16_MAX) return tree_error("failed to parse tree: can't parse filename", NULL); if ((buffer_end - (nul + 1)) < GIT_OID_RAWSZ) @@ -415,7 +415,7 @@ int git_tree__parse_raw(void *_tree, const char *data, size_t size) GIT_ERROR_CHECK_ALLOC(entry); entry->attr = attr; - entry->filename_len = filename_len; + entry->filename_len = (uint16_t)filename_len; entry->filename = buffer; entry->oid = (git_oid *) ((char *) buffer + filename_len + 1); } diff --git a/src/win32/msvc-compat.h b/src/win32/msvc-compat.h index ea77820a2..4cf471f1d 100644 --- a/src/win32/msvc-compat.h +++ b/src/win32/msvc-compat.h @@ -12,6 +12,12 @@ typedef unsigned short mode_t; typedef SSIZE_T ssize_t; +#ifdef _WIN64 +# define SSIZE_MAX _I64_MAX +#else +# define SSIZE_MAX LONG_MAX +#endif + #define strcasecmp(s1, s2) _stricmp(s1, s2) #define strncasecmp(s1, s2, c) _strnicmp(s1, s2, c) diff --git a/tests/core/zstream.c b/tests/core/zstream.c index 398d90ab0..bcbb45fde 100644 --- a/tests/core/zstream.c +++ b/tests/core/zstream.c @@ -61,7 +61,7 @@ void test_core_zstream__basic(void) void test_core_zstream__fails_on_trailing_garbage(void) { git_buf deflated = GIT_BUF_INIT, inflated = GIT_BUF_INIT; - size_t i = 0; + char i = 0; /* compress a simple string */ git_zstream_deflatebuf(&deflated, "foobar!!", 8); diff --git a/tests/index/racy.c b/tests/index/racy.c index e08deaea3..88b37e10d 100644 --- a/tests/index/racy.c +++ b/tests/index/racy.c @@ -126,8 +126,8 @@ static void setup_race(void) cl_assert(entry = (git_index_entry *)git_index_get_bypath(index, "A", 0)); /* force a race */ - entry->mtime.seconds = st.st_mtime; - entry->mtime.nanoseconds = st.st_mtime_nsec; + entry->mtime.seconds = (int32_t)st.st_mtime; + entry->mtime.nanoseconds = (int32_t)st.st_mtime_nsec; git_buf_dispose(&path); } |