• Jeff Mahoney's avatar
    KVM: Fix off by one in kvm_for_each_vcpu iteration · b42fc3cb
    Jeff Mahoney authored
    This patch avoids gcc issuing the following warning when KVM_MAX_VCPUS=1:
    warning: array subscript is above array bounds
    
    kvm_for_each_vcpu currently checks to see if the index for the vcpu is
    valid /after/ loading it. We don't run into problems because the address
    is still inside the enclosing struct kvm and we never deference or write
    to it, so this isn't a security issue.
    
    The warning occurs when KVM_MAX_VCPUS=1 because the increment portion of
    the loop will *always* cause the loop to load an invalid location since
    ++idx will always be > 0.
    
    This patch moves the load so that the check occurs before the load and
    we don't run into the compiler warning.
    Signed-off-by: default avatarNeil Brown <neilb@suse.de>
    Signed-off-by: default avatarJeff Mahoney <jeffm@suse.com>
    Signed-off-by: default avatarAvi Kivity <avi@redhat.com>
    b42fc3cb
kvm_host.h 20 KB