"git-index-pack --fix-thin" relies on mmap() not changing the current file position (otherwise the pack will be corrupted when writing the final SHA1). Meet that expectation. Signed-off-by: Johannes Schindelin <Johannes.Schindelin@xxxxxx> --- Sorry for not catching that earlier. It only affects platforms where you have to set NO_MMAP=YesPlease, anyway. compat/mmap.c | 6 ++++++ 1 files changed, 6 insertions(+), 0 deletions(-) diff --git a/compat/mmap.c b/compat/mmap.c index 55cb120..a4d2e50 100644 --- a/compat/mmap.c +++ b/compat/mmap.c @@ -7,6 +7,7 @@ void *gitfakemmap(void *start, size_t length, int prot , int flags, int fd, off_t offset) { int n = 0; + off_t current_offset = lseek(fd, 0, SEEK_CUR); if (start != NULL || !(flags & MAP_PRIVATE)) die("Invalid usage of gitfakemmap."); @@ -39,6 +40,11 @@ void *gitfakemmap(void *start, size_t le n += count; } + if (current_offset != lseek(fd, current_offset, SEEK_SET)) { + errno = EINVAL; + return MAP_FAILED; + } + return start; } -- dummy-dirty - To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html