engines/mmap: fix segfault on large devices and 32-bit archs
authorJens Axboe <axboe@fb.com>
Tue, 16 Dec 2014 17:35:07 +0000 (10:35 -0700)
committerJens Axboe <axboe@fb.com>
Tue, 16 Dec 2014 17:35:07 +0000 (10:35 -0700)
Signed-off-by: Jens Axboe <axboe@fb.com>
engines/mmap.c

index 6464cbada7f2cc189abbb23a282be37e6fbac7c9..b938d6b70f20c5817530891ed470bb67fddf8c65 100644 (file)
@@ -103,6 +103,11 @@ static int fio_mmapio_prep_full(struct thread_data *td, struct io_u *io_u)
 
        if (fio_file_partial_mmap(f))
                return EINVAL;
+       if (io_u->offset != (size_t) io_u->offset ||
+           f->io_size != (size_t) f->io_size) {
+               fio_file_set_partial_mmap(f);
+               return EINVAL;
+       }
 
        fmd->mmap_sz = f->io_size;
        fmd->mmap_off = 0;