summaryrefslogtreecommitdiff
path: root/kernel/entry
diff options
context:
space:
mode:
authorAlexey Kardashevskiy <aik@ozlabs.ru>2022-06-01 03:43:28 +0200
committerPaolo Bonzini <pbonzini@redhat.com>2022-06-07 11:18:59 -0400
commite8bc2427018826e02add7b0ed0fc625a60390ae5 (patch)
tree52661a1814da48f885f74fe2db8696b43144657a /kernel/entry
parentffd1925a596ce68bed7d81c61cb64bc35f788a9d (diff)
KVM: Don't null dereference ops->destroy
A KVM device cleanup happens in either of two callbacks: 1) destroy() which is called when the VM is being destroyed; 2) release() which is called when a device fd is closed. Most KVM devices use 1) but Book3s's interrupt controller KVM devices (XICS, XIVE, XIVE-native) use 2) as they need to close and reopen during the machine execution. The error handling in kvm_ioctl_create_device() assumes destroy() is always defined which leads to NULL dereference as discovered by Syzkaller. This adds a checks for destroy!=NULL and adds a missing release(). This is not changing kvm_destroy_devices() as devices with defined release() should have been removed from the KVM devices list by then. Suggested-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'kernel/entry')
0 files changed, 0 insertions, 0 deletions