summaryrefslogtreecommitdiff
path: root/virt
diff options
context:
space:
mode:
authorPaolo Bonzini <pbonzini@redhat.com>2024-07-16 09:51:14 -0400
committerPaolo Bonzini <pbonzini@redhat.com>2024-07-16 09:51:14 -0400
commitf4501e8bc88db2548b37afe100506358f1bf7504 (patch)
tree573b27707a299214923fb130335581c42f67eb59 /virt
parent1c5a0b55abeb6d99ed0962c6a6fa611821949523 (diff)
parentebbdf37ce9abb597015fa85df6630ebfa7d0a97f (diff)
Merge tag 'kvm-x86-fixes-6.10-11' of https://github.com/kvm-x86/linux into HEAD
KVM Xen: Fix a bug where KVM fails to check the validity of an incoming userspace virtual address and tries to activate a gfn_to_pfn_cache with a kernel address.
Diffstat (limited to 'virt')
-rw-r--r--virt/kvm/pfncache.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/virt/kvm/pfncache.c b/virt/kvm/pfncache.c
index e3453e869e92..f0039efb9e1e 100644
--- a/virt/kvm/pfncache.c
+++ b/virt/kvm/pfncache.c
@@ -430,6 +430,9 @@ int kvm_gpc_activate(struct gfn_to_pfn_cache *gpc, gpa_t gpa, unsigned long len)
int kvm_gpc_activate_hva(struct gfn_to_pfn_cache *gpc, unsigned long uhva, unsigned long len)
{
+ if (!access_ok((void __user *)uhva, len))
+ return -EINVAL;
+
return __kvm_gpc_activate(gpc, INVALID_GPA, uhva, len);
}