From: Cornelia Huck <cohuck@redhat.com>
To: kvm-riscv@lists.infradead.org
Subject: [PATCH v2 4/6] KVM: arm64: Limit length in kvm_vm_ioctl_mte_copy_tags() to INT_MAX
Date: Wed, 08 Feb 2023 16:03:22 +0100 [thread overview]
Message-ID: <87pmakmc79.fsf@redhat.com> (raw)
In-Reply-To: <20230208140105.655814-5-thuth@redhat.com>
On Wed, Feb 08 2023, Thomas Huth <thuth@redhat.com> wrote:
> In case of success, this function returns the amount of handled bytes.
> However, this does not work for large values: The function is called
> from kvm_arch_vm_ioctl() (which still returns a long), which in turn
> is called from kvm_vm_ioctl() in virt/kvm/kvm_main.c. And that function
> stores the return value in an "int r" variable. So the upper 32-bits
> of the "long" return value are lost there.
>
> KVM ioctl functions should only return "int" values, so let's limit
> the amount of bytes that can be requested here to INT_MAX to avoid
> the problem with the truncated return value. We can then also change
> the return type of the function to "int" to make it clearer that it
> is not possible to return a "long" here.
>
> Fixes: f0376edb1ddc ("KVM: arm64: Add ioctl to fetch/store tags in a guest")
> Signed-off-by: Thomas Huth <thuth@redhat.com>
> ---
> Documentation/virt/kvm/api.rst | 3 ++-
> arch/arm64/include/asm/kvm_host.h | 4 ++--
> arch/arm64/kvm/guest.c | 8 ++++++--
> 3 files changed, 10 insertions(+), 5 deletions(-)
Reviewed-by: Cornelia Huck <cohuck@redhat.com>
WARNING: multiple messages have this Message-ID (diff)
From: Cornelia Huck <cohuck@redhat.com>
To: Thomas Huth <thuth@redhat.com>,
kvm@vger.kernel.org, Paolo Bonzini <pbonzini@redhat.com>,
Sean Christopherson <seanjc@google.com>
Cc: kvmarm@lists.linux.dev, linux-kernel@vger.kernel.org,
kvm-riscv@lists.infradead.org, Marc Zyngier <maz@kernel.org>,
James Morse <james.morse@arm.com>,
Suzuki K Poulose <suzuki.poulose@arm.com>,
Oliver Upton <oliver.upton@linux.dev>,
Zenghui Yu <yuzenghui@huawei.com>,
Christian Borntraeger <borntraeger@linux.ibm.com>,
Janosch Frank <frankja@linux.ibm.com>,
David Hildenbrand <david@redhat.com>,
Gavin Shan <gshan@redhat.com>,
Steven Price <steven.price@arm.com>
Subject: Re: [PATCH v2 4/6] KVM: arm64: Limit length in kvm_vm_ioctl_mte_copy_tags() to INT_MAX
Date: Wed, 08 Feb 2023 16:03:22 +0100 [thread overview]
Message-ID: <87pmakmc79.fsf@redhat.com> (raw)
In-Reply-To: <20230208140105.655814-5-thuth@redhat.com>
On Wed, Feb 08 2023, Thomas Huth <thuth@redhat.com> wrote:
> In case of success, this function returns the amount of handled bytes.
> However, this does not work for large values: The function is called
> from kvm_arch_vm_ioctl() (which still returns a long), which in turn
> is called from kvm_vm_ioctl() in virt/kvm/kvm_main.c. And that function
> stores the return value in an "int r" variable. So the upper 32-bits
> of the "long" return value are lost there.
>
> KVM ioctl functions should only return "int" values, so let's limit
> the amount of bytes that can be requested here to INT_MAX to avoid
> the problem with the truncated return value. We can then also change
> the return type of the function to "int" to make it clearer that it
> is not possible to return a "long" here.
>
> Fixes: f0376edb1ddc ("KVM: arm64: Add ioctl to fetch/store tags in a guest")
> Signed-off-by: Thomas Huth <thuth@redhat.com>
> ---
> Documentation/virt/kvm/api.rst | 3 ++-
> arch/arm64/include/asm/kvm_host.h | 4 ++--
> arch/arm64/kvm/guest.c | 8 ++++++--
> 3 files changed, 10 insertions(+), 5 deletions(-)
Reviewed-by: Cornelia Huck <cohuck@redhat.com>
next prev parent reply other threads:[~2023-02-08 15:03 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-02-08 14:00 [PATCH v2 0/6] KVM: Standardize on "int" return types instead of "long" Thomas Huth
2023-02-08 14:00 ` Thomas Huth
2023-02-08 14:01 ` [PATCH v2 1/6] KVM: PPC: Standardize on "int" return types in the powerpc KVM code Thomas Huth
2023-02-08 14:01 ` Thomas Huth
2023-02-08 14:01 ` [PATCH v2 2/6] KVM: s390: Use "int" as return type for kvm_s390_get/set_skeys() Thomas Huth
2023-02-08 14:01 ` Thomas Huth
2023-02-08 14:01 ` [PATCH v2 3/6] KVM: x86: Remove the KVM_GET_NR_MMU_PAGES ioctl Thomas Huth
2023-02-08 14:01 ` Thomas Huth
2023-02-08 14:48 ` Sean Christopherson
2023-02-08 14:48 ` Sean Christopherson
2023-02-08 14:01 ` [PATCH v2 4/6] KVM: arm64: Limit length in kvm_vm_ioctl_mte_copy_tags() to INT_MAX Thomas Huth
2023-02-08 14:01 ` Thomas Huth
2023-02-08 14:05 ` Steven Price
2023-02-08 14:05 ` Steven Price
2023-02-08 15:03 ` Cornelia Huck [this message]
2023-02-08 15:03 ` Cornelia Huck
2023-02-10 6:50 ` Gavin Shan
2023-02-10 6:50 ` Gavin Shan
2023-02-08 14:01 ` [PATCH v2 5/6] KVM: Standardize on "int" return types instead of "long" in kvm_main.c Thomas Huth
2023-02-08 14:01 ` Thomas Huth
2023-02-08 14:01 ` [PATCH v2 6/6] KVM: Change return type of kvm_arch_vm_ioctl() to "int" Thomas Huth
2023-02-08 14:01 ` Thomas Huth
2023-02-28 21:05 ` Thomas Huth
2023-02-28 21:05 ` Thomas Huth
2023-03-01 3:36 ` Anup Patel
2023-03-01 3:36 ` Anup Patel
2023-03-14 13:35 ` [PATCH v2 0/6] KVM: Standardize on "int" return types instead of "long" Paolo Bonzini
2023-03-14 13:35 ` Paolo Bonzini
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87pmakmc79.fsf@redhat.com \
--to=cohuck@redhat.com \
--cc=kvm-riscv@lists.infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.