Fix another verify segfault
authorJens Axboe <axboe@kernel.dk>
Tue, 6 Mar 2012 18:24:49 +0000 (19:24 +0100)
committerJens Axboe <axboe@kernel.dk>
Tue, 6 Mar 2012 18:24:49 +0000 (19:24 +0100)
If you run this job:

[global]
ioengine=libaio
direct=1
filename=/tmp/foo
iodepth=128
size=10M
loops=1
group_reporting=1
readwrite=write
do_verify=0
verify=md5
numjobs=1
thread
verify_dump=1

[small_writes]
offset=0G
blocksize=512
verify_interval=1M

[large_writes]
stonewall
offset=1G
blocksize=1M
verify_interval=512

fio crashes because verify_interval is larger than the block size
in the small_writes job. Check for this in get_hdr_inc().

Signed-off-by: Jens Axboe <axboe@kernel.dk>
verify.c

index 5fe78c8cf556893fafccda5f485beca158e68ca0..6dd7f6a0285df0613d15d6590f9a604e90cd6b49 100644 (file)
--- a/verify.c
+++ b/verify.c
@@ -78,7 +78,7 @@ static unsigned int get_hdr_inc(struct thread_data *td, struct io_u *io_u)
        unsigned int hdr_inc;
 
        hdr_inc = io_u->buflen;
-       if (td->o.verify_interval)
+       if (td->o.verify_interval && td->o.verify_interval <= io_u->buflen)
                hdr_inc = td->o.verify_interval;
 
        return hdr_inc;