Messages in this thread | | | Date | Mon, 24 Jan 2022 16:52:16 +0000 | From | Sean Christopherson <> | Subject | Re: [PATCH 2/2] KVM: x86: Use memcmp in kvm_cpuid_check_equal() |
| |
On Mon, Jan 24, 2022, Vitaly Kuznetsov wrote: > Paolo Bonzini <pbonzini@redhat.com> writes: > >> + if (memcmp(e2, vcpu->arch.cpuid_entries, nent * sizeof(*e2))) > >> + return -EINVAL; > > > > Hmm, not sure about that due to the padding in struct kvm_cpuid_entry2. > > It might break userspace that isn't too careful about zeroing it.
Given that we already are fully committed to potentially breaking userspace by disallowing KVM_SET_CPUID{2} after KVM_RUN, we might as well get greedy.
> FWIW, QEMU zeroes the whole thing before setting individual CPUID > entries. Legacy KVM_SET_CPUID call is also not afffected as it copies > entries to a newly allocated "struct kvm_cpuid_entry2[]" and explicitly > zeroes padding. > > Do we need to at least add a check for ".flags"?
Yes.
| |