summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexander Bulekov2020-10-29 18:29:00 +0100
committerPaolo Bonzini2020-11-03 19:17:27 +0100
commit953e6d7c0e94126dbfdb63ba1546e6b74ed9ccee (patch)
tree4440815bb16f1599dac038ff89fb9bfe26956e3d
parentfuzz: check the MR in the DMA callback (diff)
downloadqemu-953e6d7c0e94126dbfdb63ba1546e6b74ed9ccee.tar.gz
qemu-953e6d7c0e94126dbfdb63ba1546e6b74ed9ccee.tar.xz
qemu-953e6d7c0e94126dbfdb63ba1546e6b74ed9ccee.zip
fuzz: fuzz offsets within pio/mmio regions
The code did not add offsets to FlatRange bases, so we did not fuzz offsets within device MemoryRegions. Signed-off-by: Alexander Bulekov <alxndr@bu.edu> Reviewed-by: Darren Kenny <darren.kenny@oracle.com> Message-Id: <20201029172901.534442-4-alxndr@bu.edu> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
-rw-r--r--tests/qtest/fuzz/generic_fuzz.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/tests/qtest/fuzz/generic_fuzz.c b/tests/qtest/fuzz/generic_fuzz.c
index 3a5dbc3ce2..262a963d2e 100644
--- a/tests/qtest/fuzz/generic_fuzz.c
+++ b/tests/qtest/fuzz/generic_fuzz.c
@@ -298,6 +298,11 @@ static bool get_io_address(address_range *result, AddressSpace *as,
} while (cb_info.index != index && !cb_info.found);
*result = cb_info.result;
+ if (result->size) {
+ offset = offset % result->size;
+ result->addr += offset;
+ result->size -= offset;
+ }
return cb_info.found;
}