diff options
author | Ramsay Jones <ramsay@ramsay1.demon.co.uk> | 2010-01-04 18:57:13 +0000 |
---|---|---|
committer | Ramsay Jones <ramsay@ramsay1.demon.co.uk> | 2010-01-20 20:20:47 +0000 |
commit | e8a952561c4e59ca308d1973de46fc32ad91a022 (patch) | |
tree | 0fd7e4bfba5b3a82be88d1057757ca8b2c5e6d26 | |
parent | 1a7bae4d0f9d9314b905109b5b321219b7e6be3b (diff) | |
download | libgit2-e8a952561c4e59ca308d1973de46fc32ad91a022.tar.gz |
msvc: Fix some -W4 warnings
Signed-off-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk>
-rw-r--r-- | src/delta-apply.c | 14 | ||||
-rw-r--r-- | src/fileops.c | 1 | ||||
-rw-r--r-- | src/odb.c | 2 | ||||
-rw-r--r-- | tests/t0101-oid.c | 6 |
4 files changed, 14 insertions, 9 deletions
diff --git a/src/delta-apply.c b/src/delta-apply.c index 7b592ecfb..4915947ac 100644 --- a/src/delta-apply.c +++ b/src/delta-apply.c @@ -9,7 +9,8 @@ * Nicolas Pitre <nico@cam.org>. */ -static size_t hdr_sz( +static int hdr_sz( + size_t *size, const unsigned char **delta, const unsigned char *end) { @@ -25,7 +26,8 @@ static size_t hdr_sz( shift += 7; } while (c & 0x80); *delta = d; - return r; + *size = r; + return 0; } int git__delta_apply( @@ -36,17 +38,19 @@ int git__delta_apply( size_t delta_len) { const unsigned char *delta_end = delta + delta_len; - size_t res_sz; + size_t base_sz, res_sz; unsigned char *res_dp; /* Check that the base size matches the data we were given; * if not we would underflow while accessing data from the * base object, resulting in data corruption or segfault. */ - if (base_len != hdr_sz(&delta, delta_end)) + if ((hdr_sz(&base_sz, &delta, delta_end) < 0) || (base_sz != base_len)) + return GIT_ERROR; + + if (hdr_sz(&res_sz, &delta, delta_end) < 0) return GIT_ERROR; - res_sz = hdr_sz(&delta, delta_end); if ((res_dp = git__malloc(res_sz + 1)) == NULL) return GIT_ERROR; res_dp[res_sz] = '\0'; diff --git a/src/fileops.c b/src/fileops.c index d1621f2e3..b3715dc1a 100644 --- a/src/fileops.c +++ b/src/fileops.c @@ -209,7 +209,6 @@ int gitfo_write_cached(gitfo_cache *ioc, void *buff, size_t len) if (len > ioc->cache_size) return gitfo_write(ioc->fd, buf, len); } - return GIT_SUCCESS; } int gitfo_close_cached(gitfo_cache *ioc) @@ -840,6 +840,8 @@ static void packlist_dec(git_odb *db, git_packlist *pl) { int need_free; + assert(db && pl); + gitlck_lock(&db->lock); need_free = !--pl->refcnt; gitlck_unlock(&db->lock); diff --git a/tests/t0101-oid.c b/tests/t0101-oid.c index 4711d372e..16ba02bda 100644 --- a/tests/t0101-oid.c +++ b/tests/t0101-oid.c @@ -19,7 +19,7 @@ BEGIN_TEST(invalid_string_moo) must_fail(git_oid_mkstr(&out, "moo")); END_TEST -static int from_hex(unsigned char i) +static int from_hex(unsigned int i) { if (i >= '0' && i <= '9') return i - '0'; @@ -38,14 +38,14 @@ BEGIN_TEST(invalid_string_all_chars) 0xb7, 0x75, 0x21, 0x3c, 0x23, 0xa8, 0xbd, 0x74, 0xf5, 0xe0, }; - char in[41] = "16a67770b7d8d72317c4b775213c23a8bd74f5e0\0"; + char in[41] = "16a67770b7d8d72317c4b775213c23a8bd74f5e0"; unsigned int i; for (i = 0; i < 256; i++) { in[38] = (char)i; if (from_hex(i) >= 0) { - exp[19] = (from_hex(i) << 4); + exp[19] = (unsigned char)(from_hex(i) << 4); if (git_oid_mkstr(&out, in)) test_die("line %d: must accept '%s'", __LINE__, in); if (memcmp(out.id, exp, sizeof(out.id))) |