• Sean Christopherson's avatar
    KVM: x86: Add WARNs to detect out-of-bounds register indices · 489cbcf0
    Sean Christopherson authored
    Add WARN_ON_ONCE() checks in kvm_register_{read,write}() to detect reg
    values that would cause KVM to overflow vcpu->arch.regs.  Change the reg
    param to an 'int' to make it clear that the reg index is unverified.
    
    Regarding the overhead of WARN_ON_ONCE(), now that all fixed GPR reads
    and writes use dedicated accessors, e.g. kvm_rax_read(), the overhead
    is limited to flows where the reg index is generated at runtime.  And
    there is at least one historical bug where KVM has generated an out-of-
    bounds access to arch.regs (see commit b68f3cc7, "KVM: x86: Always
    use 32-bit SMRAM save state for 32-bit kernels").
    
    Adding the WARN_ON_ONCE() protection paves the way for additional
    cleanup related to kvm_reg and kvm_reg_ex.
    Signed-off-by: default avatarSean Christopherson <sean.j.christopherson@intel.com>
    Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
    489cbcf0
kvm_cache_regs.h 4.14 KB