Message ID | 20240419160723.320910-2-jean-philippe@linaro.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | KVM: s390: Check kvm pointer when testing KVM_CAP_S390_HPAGE_1M | expand |
On Fri, 19 Apr 2024 17:07:24 +0100 Jean-Philippe Brucker <jean-philippe@linaro.org> wrote: > KVM allows issuing the KVM_CHECK_EXTENSION ioctl either on the /dev/kvm > fd or the VM fd. In the first case, kvm_vm_ioctl_check_extension() is > called with kvm==NULL. Ensure we don't dereference the pointer in that > case. > > Fixes: 40ebdb8e59df ("KVM: s390: Make huge pages unavailable in ucontrol VMs") > Signed-off-by: Jean-Philippe Brucker <jean-philippe@linaro.org> Reviewed-by: Claudio Imbrenda <imbrenda@linux.ibm.com> > --- > Only build-tested > --- > arch/s390/kvm/kvm-s390.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/arch/s390/kvm/kvm-s390.c b/arch/s390/kvm/kvm-s390.c > index 5147b943a864a..7721eb522f43d 100644 > --- a/arch/s390/kvm/kvm-s390.c > +++ b/arch/s390/kvm/kvm-s390.c > @@ -587,7 +587,7 @@ int kvm_vm_ioctl_check_extension(struct kvm *kvm, long ext) > break; > case KVM_CAP_S390_HPAGE_1M: > r = 0; > - if (hpage && !kvm_is_ucontrol(kvm)) > + if (hpage && !(kvm && kvm_is_ucontrol(kvm))) > r = 1; > break; > case KVM_CAP_S390_MEM_OP:
Am 19.04.24 um 18:07 schrieb Jean-Philippe Brucker: > KVM allows issuing the KVM_CHECK_EXTENSION ioctl either on the /dev/kvm > fd or the VM fd. In the first case, kvm_vm_ioctl_check_extension() is > called with kvm==NULL. Ensure we don't dereference the pointer in that > case. > > Fixes: 40ebdb8e59df ("KVM: s390: Make huge pages unavailable in ucontrol VMs") > Signed-off-by: Jean-Philippe Brucker <jean-philippe@linaro.org> Reviewed-by: Christian Borntraeger <borntraeger@linux.ibm.com> thanks applied. > --- > Only build-tested > --- > arch/s390/kvm/kvm-s390.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/arch/s390/kvm/kvm-s390.c b/arch/s390/kvm/kvm-s390.c > index 5147b943a864a..7721eb522f43d 100644 > --- a/arch/s390/kvm/kvm-s390.c > +++ b/arch/s390/kvm/kvm-s390.c > @@ -587,7 +587,7 @@ int kvm_vm_ioctl_check_extension(struct kvm *kvm, long ext) > break; > case KVM_CAP_S390_HPAGE_1M: > r = 0; > - if (hpage && !kvm_is_ucontrol(kvm)) > + if (hpage && !(kvm && kvm_is_ucontrol(kvm))) > r = 1; > break; > case KVM_CAP_S390_MEM_OP:
diff --git a/arch/s390/kvm/kvm-s390.c b/arch/s390/kvm/kvm-s390.c index 5147b943a864a..7721eb522f43d 100644 --- a/arch/s390/kvm/kvm-s390.c +++ b/arch/s390/kvm/kvm-s390.c @@ -587,7 +587,7 @@ int kvm_vm_ioctl_check_extension(struct kvm *kvm, long ext) break; case KVM_CAP_S390_HPAGE_1M: r = 0; - if (hpage && !kvm_is_ucontrol(kvm)) + if (hpage && !(kvm && kvm_is_ucontrol(kvm))) r = 1; break; case KVM_CAP_S390_MEM_OP:
KVM allows issuing the KVM_CHECK_EXTENSION ioctl either on the /dev/kvm fd or the VM fd. In the first case, kvm_vm_ioctl_check_extension() is called with kvm==NULL. Ensure we don't dereference the pointer in that case. Fixes: 40ebdb8e59df ("KVM: s390: Make huge pages unavailable in ucontrol VMs") Signed-off-by: Jean-Philippe Brucker <jean-philippe@linaro.org> --- Only build-tested --- arch/s390/kvm/kvm-s390.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)