cxl/mbox: Add a check on input payload size
authorJonathan Cameron <Jonathan.Cameron@huawei.com>
Mon, 15 Aug 2022 15:40:43 +0000 (16:40 +0100)
committerDan Williams <dan.j.williams@intel.com>
Thu, 20 Oct 2022 23:28:53 +0000 (16:28 -0700)
A bug in the LSA code resulted in transfers slightly larger
than the mailbox size. Let us make it easier to catch similar
issues in future by adding a low level check.

Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Link: https://lore.kernel.org/r/20220815154044.24733-2-Jonathan.Cameron@huawei.com
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
drivers/cxl/core/mbox.c

index 16176b9..0c90f13 100644 (file)
@@ -174,7 +174,7 @@ int cxl_mbox_send_cmd(struct cxl_dev_state *cxlds, u16 opcode, void *in,
        };
        int rc;
 
-       if (out_size > cxlds->payload_size)
+       if (in_size > cxlds->payload_size || out_size > cxlds->payload_size)
                return -E2BIG;
 
        rc = cxlds->mbox_send(cxlds, &mbox_cmd);