From: Prasad J Pandit <p...@fedoraproject.org> When registering a MemoryRegionOps object, assert that its read/write callback methods are defined. This avoids potential guest crash via a NULL pointer dereference.
Suggested-by: Peter Maydell <peter.mayd...@linaro.org> Signed-off-by: Prasad J Pandit <p...@fedoraproject.org> --- memory.c | 5 +++++ 1 file changed, 5 insertions(+) Update v1: add assert while registering MemoryRegionOps -> https://lists.gnu.org/archive/html/qemu-devel/2020-06/msg05187.html diff --git a/memory.c b/memory.c index 91ceaf9fcf..6e94fd5958 100644 --- a/memory.c +++ b/memory.c @@ -1495,6 +1495,9 @@ void memory_region_init_io(MemoryRegion *mr, const char *name, uint64_t size) { + assert(ops); + assert(ops->read); + assert(ops->write); memory_region_init(mr, owner, name, size); mr->ops = ops ? ops : &unassigned_mem_ops; mr->opaque = opaque; @@ -1674,6 +1677,8 @@ void memory_region_init_rom_device_nomigrate(MemoryRegion *mr, { Error *err = NULL; assert(ops); + assert(ops->read); + assert(ops->write); memory_region_init(mr, owner, name, size); mr->ops = ops; mr->opaque = opaque; -- 2.26.2