diff options
author | Chen Lin Z <lin.z.chen@intel.com> | 2019-02-12 10:31:42 -0800 |
---|---|---|
committer | android-build-merger <android-build-merger@google.com> | 2019-02-12 10:31:42 -0800 |
commit | 8c350c8f5b9b50071156df68aba31d7d7b7b6b12 (patch) | |
tree | bb3de579068c34e48de10d58b067e4d5be568b0a | |
parent | f1714a3335736161cdb5d094668ab308fe1f063c (diff) | |
parent | 849299cdc876caea9cee8d15483efd3e46a2c83c (diff) | |
download | android_external_e2fsprogs-8c350c8f5b9b50071156df68aba31d7d7b7b6b12.tar.gz android_external_e2fsprogs-8c350c8f5b9b50071156df68aba31d7d7b7b6b12.tar.bz2 android_external_e2fsprogs-8c350c8f5b9b50071156df68aba31d7d7b7b6b12.zip |
Merge "Fix file offset overflow issue when file's size > 4G"
am: 849299cdc8
Change-Id: I474e306f008d45ff894b4198a3a79cad0f2f3995
-rw-r--r-- | misc/create_inode.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/misc/create_inode.c b/misc/create_inode.c index 05aa6363..7b3a8ee2 100644 --- a/misc/create_inode.c +++ b/misc/create_inode.c @@ -438,8 +438,8 @@ static errcode_t copy_file_chunk(ext2_filsys fs, int fd, ext2_file_t e2_file, ptr += blen; continue; } - err = ext2fs_file_lseek(e2_file, off + bpos, - EXT2_SEEK_SET, NULL); + err = ext2fs_file_llseek(e2_file, off + bpos, + EXT2_SEEK_SET, NULL); if (err) goto fail; while (blen > 0) { @@ -480,8 +480,8 @@ static errcode_t try_lseek_copy(ext2_filsys fs, int fd, struct stat *statbuf, if (hole < 0) return EXT2_ET_UNIMPLEMENTED; - data_blk = data & ~(fs->blocksize - 1); - hole_blk = (hole + (fs->blocksize - 1)) & ~(fs->blocksize - 1); + data_blk = data & ~(off_t)(fs->blocksize - 1); + hole_blk = (hole + (fs->blocksize - 1)) & ~(off_t)(fs->blocksize - 1); err = copy_file_chunk(fs, fd, e2_file, data_blk, hole_blk, buf, zerobuf); if (err) |