diff options
author | Vicent Martà <tanoku@gmail.com> | 2012-01-15 15:48:36 -0800 |
---|---|---|
committer | Vicent Martà <tanoku@gmail.com> | 2012-01-15 15:48:36 -0800 |
commit | 1af56d7d7eae77525b84815858cc2de9c0aa60d8 (patch) | |
tree | d712274d7f93fc6c931ee043e9eb9bb5f5a94975 | |
parent | c1c399cf27fbb085e402afd6a405b1c24ddee478 (diff) | |
download | libgit2-1af56d7d7eae77525b84815858cc2de9c0aa60d8.tar.gz |
Fix #534: 64-bit issues in Windows
off_t is always 32 bits in Windows, which is beyond stupid, but we just
don't care anymore because we're using `git_off_t` which is assured to
be 64 bits on all platforms, regardless of compilation mode. Just
ensure that no casts to `off_t` are performed.
Also, the check for `off_t` overflows has been dropped, once again,
because the size of our offsets is always 64 bits on all platforms.
Fixes #534
-rw-r--r-- | src/pack.c | 9 |
1 files changed, 1 insertions, 8 deletions
diff --git a/src/pack.c b/src/pack.c index ae954b988..1510ded0c 100644 --- a/src/pack.c +++ b/src/pack.c @@ -157,13 +157,6 @@ static int pack_index_check(const char *path, struct git_pack_file *p) git_futils_mmap_free(&p->index_map); return git__throw(GIT_EOBJCORRUPTED, "Failed to check index. Wrong index size"); } - - /* Make sure that off_t is big enough to access the whole pack... - * Is this an issue in libgit2? It shouldn't. */ - if (idx_size != min_size && (sizeof(off_t) <= 4)) { - git_futils_mmap_free(&p->index_map); - return git__throw(GIT_EOSERR, "Failed to check index. off_t not big enough to access the whole pack"); - } } p->index_version = version; @@ -619,7 +612,7 @@ int git_packfile_check(struct git_pack_file **pack_out, const char *path) /* ok, it looks sane as far as we can check without * actually mapping the pack file. */ - p->mwf.size = (off_t)st.st_size; + p->mwf.size = st.st_size; p->pack_local = 1; p->mtime = (git_time_t)st.st_mtime; |