diff mbox series

KVM: s390: Check kvm pointer when testing KVM_CAP_S390_HPAGE_1M

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

Commit Message

Jean-Philippe Brucker April 19, 2024, 4:07 p.m. UTC
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(-)

Comments

Claudio Imbrenda April 19, 2024, 4:43 p.m. UTC | #1
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:
Christian Borntraeger April 22, 2024, 8:25 a.m. UTC | #2
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 mbox series

Patch

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: