hw/cxl: Check the length of data requested fits in get_log()

Checking offset + length is of no relevance when verifying the CEL
data will fit in the mailbox payload. Only the length is is relevant.

Note that this removes a potential overflow.

Reported-by: Esifiel <esifiel@gmail.com>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Message-Id: <20241101133917.27634-6-Jonathan.Cameron@huawei.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
This commit is contained in:
Jonathan Cameron 2024-11-01 13:39:12 +00:00 committed by Michael S. Tsirkin
parent a3995360ae
commit f9f0fa2438

View File

@ -947,7 +947,7 @@ static CXLRetCode cmd_logs_get_log(const struct cxl_cmd *cmd,
* the only possible failure would be if the mailbox itself isn't big * the only possible failure would be if the mailbox itself isn't big
* enough. * enough.
*/ */
if (get_log->offset + get_log->length > cci->payload_max) { if (get_log->length > cci->payload_max) {
return CXL_MBOX_INVALID_INPUT; return CXL_MBOX_INVALID_INPUT;
} }