From: Liran Alon Date: Thu, 12 Mar 2020 16:54:31 +0000 (+0200) Subject: hw/i386/vmport: Assert vmport initialized before registering commands X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=23accdf162dcccb9fec9585a64ad01a87b13da5c;p=qemu.git hw/i386/vmport: Assert vmport initialized before registering commands vmport_register() is also called from other modules such as vmmouse. Therefore, these modules rely that vmport is realized before those call sites. If this is violated, vmport_register() will NULL-deref. To make such issues easier to debug, assert in vmport_register() that vmport is already realized. Reviewed-by: Nikita Leshenko Signed-off-by: Liran Alon Message-Id: <20200312165431.82118-17-liran.alon@oracle.com> Signed-off-by: Paolo Bonzini --- diff --git a/hw/i386/vmport.c b/hw/i386/vmport.c index 309cfd105b..79ef25d223 100644 --- a/hw/i386/vmport.c +++ b/hw/i386/vmport.c @@ -81,6 +81,8 @@ static VMPortState *port_state; void vmport_register(VMPortCommand command, VMPortReadFunc *func, void *opaque) { assert(command < VMPORT_ENTRIES); + assert(port_state); + trace_vmport_register(command, func, opaque); port_state->func[command] = func; port_state->opaque[command] = opaque;