diff options
author | Liran Alon <liran.alon@oracle.com> | 2020-03-12 18:54:31 +0200 |
---|---|---|
committer | Paolo Bonzini <pbonzini@redhat.com> | 2020-06-10 12:09:54 -0400 |
commit | 23accdf162dcccb9fec9585a64ad01a87b13da5c (patch) | |
tree | 785921c36fa0e974145b52279f752e1e1b6648f8 /hw/i386/vmport.c | |
parent | d6048bfd12e24a0980ba2040cfaa2b101df3fa16 (diff) | |
download | qemu-23accdf162dcccb9fec9585a64ad01a87b13da5c.zip qemu-23accdf162dcccb9fec9585a64ad01a87b13da5c.tar.gz qemu-23accdf162dcccb9fec9585a64ad01a87b13da5c.tar.bz2 |
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 <nikita.leshchenko@oracle.com>
Signed-off-by: Liran Alon <liran.alon@oracle.com>
Message-Id: <20200312165431.82118-17-liran.alon@oracle.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'hw/i386/vmport.c')
-rw-r--r-- | hw/i386/vmport.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/hw/i386/vmport.c b/hw/i386/vmport.c index 309cfd1..79ef25d 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; |