aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonathan Cameron <Jonathan.Cameron@huawei.com>2024-11-01 13:39:09 +0000
committerMichael S. Tsirkin <mst@redhat.com>2024-11-04 16:03:25 -0500
commit91a743bd021a262af61c79cc35f0b634b2fcf3ad (patch)
tree565021567fd5796d15e1425fa99c2bea5d91fb9f
parent7edbbff5ee85dd28699c5acd6ea2f2c2e41c37d2 (diff)
downloadqemu-91a743bd021a262af61c79cc35f0b634b2fcf3ad.zip
qemu-91a743bd021a262af61c79cc35f0b634b2fcf3ad.tar.gz
qemu-91a743bd021a262af61c79cc35f0b634b2fcf3ad.tar.bz2
hw/cxl: Check input includes at least the header in cmd_features_set_feature()
A buggy guest might write an insufficiently large message. Check the header is present. Whilst zero data after the header is very odd it will just result in failure to copy any data. Reported-by: Esifiel <esifiel@gmail.com> Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com> Message-Id: <20241101133917.27634-3-Jonathan.Cameron@huawei.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
-rw-r--r--hw/cxl/cxl-mailbox-utils.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/hw/cxl/cxl-mailbox-utils.c b/hw/cxl/cxl-mailbox-utils.c
index 1792441..e63140a 100644
--- a/hw/cxl/cxl-mailbox-utils.c
+++ b/hw/cxl/cxl-mailbox-utils.c
@@ -1238,6 +1238,9 @@ static CXLRetCode cmd_features_set_feature(const struct cxl_cmd *cmd,
CXLType3Dev *ct3d;
uint16_t count;
+ if (len_in < sizeof(*hdr)) {
+ return CXL_MBOX_INVALID_PAYLOAD_LENGTH;
+ }
if (!object_dynamic_cast(OBJECT(cci->d), TYPE_CXL_TYPE3)) {
return CXL_MBOX_UNSUPPORTED;