Re: [PATCH] RISC-V: KVM: fix stack overrun when loading vlenb

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 





On 8/5/25 7:44 AM, Radim Krčmář wrote:
The userspace load can put up to 2048 bits into an xlen bit stack
buffer.  We want only xlen bits, so check the size beforehand.

Fixes: 2fa290372dfe ("RISC-V: KVM: add 'vlenb' Vector CSR")
Cc: <stable@xxxxxxxxxxxxxxx>
Signed-off-by: Radim Krčmář <rkrcmar@xxxxxxxxxxxxxxxx>
---

Reviewed-by: Daniel Henrique Barboza <dbarboza@xxxxxxxxxxxxxxxx>

  arch/riscv/kvm/vcpu_vector.c | 2 ++
  1 file changed, 2 insertions(+)

diff --git a/arch/riscv/kvm/vcpu_vector.c b/arch/riscv/kvm/vcpu_vector.c
index a5f88cb717f3..05f3cc2d8e31 100644
--- a/arch/riscv/kvm/vcpu_vector.c
+++ b/arch/riscv/kvm/vcpu_vector.c
@@ -182,6 +182,8 @@ int kvm_riscv_vcpu_set_reg_vector(struct kvm_vcpu *vcpu,
  		struct kvm_cpu_context *cntx = &vcpu->arch.guest_context;
  		unsigned long reg_val;
+ if (reg_size != sizeof(reg_val))
+			return -EINVAL;
  		if (copy_from_user(&reg_val, uaddr, reg_size))
  			return -EFAULT;
  		if (reg_val != cntx->vector.vlenb)





[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux