KVM: Harden copying of userspace-array against overflow
authorPhilipp Stanner <pstanner@redhat.com>
Thu, 2 Nov 2023 18:15:26 +0000 (19:15 +0100)
committerSean Christopherson <seanjc@google.com>
Fri, 1 Dec 2023 16:00:53 +0000 (08:00 -0800)
commit1f829359c8c37f77a340575957686ca8c4bca317
tree3115597707b88ccfafc3cc83e32b2d4dd36fe7c8
parent8c4976772d9b5858b8b456e84783e089c6cfa66e
KVM: Harden copying of userspace-array against overflow

kvm_main.c utilizes vmemdup_user() and array_size() to copy a userspace
array. Currently, this does not check for an overflow.

Use the new wrapper vmemdup_array_user() to copy the array more safely.

Note, KVM explicitly checks the number of entries before duplicating the
array, i.e. adding the overflow check should be a glorified nop.

Suggested-by: Dave Airlie <airlied@redhat.com>
Signed-off-by: Philipp Stanner <pstanner@redhat.com>
Link: https://lore.kernel.org/r/20231102181526.43279-4-pstanner@redhat.com
[sean: call out that KVM pre-checks the number of entries]
Signed-off-by: Sean Christopherson <seanjc@google.com>
virt/kvm/kvm_main.c