virtio-devices: iommu: Use checked add for reply length

The reply length was `hdr_len + size_of::<tail>()`, computed twice.
Make it explicit via checked_add and reuse the result.

Signed-off-by: Rob Bradford <rbradford@meta.com>
Assisted-by: Claude:claude-opus-4-7
This commit is contained in:
Rob Bradford
2026-04-25 22:32:00 +01:00
parent d552320f4f
commit f9abcb8d9c

View File

@@ -642,7 +642,10 @@ impl Request {
return Err(Error::UnexpectedReadOnlyDescriptor);
}
if status_desc.len() < hdr_len + size_of::<VirtioIommuReqTail>() as u32 {
let reply_len = (hdr_len as usize)
.checked_add(size_of::<VirtioIommuReqTail>())
.ok_or(Error::BufferLengthTooSmall)?;
if (status_desc.len() as usize) < reply_len {
return Err(Error::BufferLengthTooSmall);
}
@@ -662,7 +665,7 @@ impl Request {
// Return the error if the result was not Ok().
result?;
Ok((hdr_len as usize) + size_of::<VirtioIommuReqTail>())
Ok(reply_len)
}
}