summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLi Qiang <liqiang01@kylinos.cn>2026-07-17 23:39:11 +0800
committerMartin K. Petersen <martin.petersen@oracle.com>2026-07-26 15:51:54 -0400
commita947b8edbdcec8415a80ca55e9f38801322ffdd3 (patch)
treeed6b360810d24338c74eb6ea5e0ccf6c107a62af
parent9e6dd452f1affb5c412ca64bf5809ce9fde3174d (diff)
downloadlinux-next-a947b8edbdcec8415a80ca55e9f38801322ffdd3.tar.gz
linux-next-a947b8edbdcec8415a80ca55e9f38801322ffdd3.zip
scsi: ufs: rpmb: Validate request frame length before parsing
The RPMB core only verifies that request and response buffers are nonempty. This callback reads req_resp at the end of the first request frame before validating the request length. Require a complete frame before that access. Fixes: b06b8c421485 ("scsi: ufs: core: Add OP-TEE based RPMB driver for UFS devices") Signed-off-by: Li Qiang <liqiang01@kylinos.cn> Reviewed-by: Peter Wang <peter.wang@mediatek.com> Reviewed-by: Bean Huo <beanhuo@micron.com> Link: https://patch.msgid.link/20260717153914.26321-5-liqiang01@kylinos.cn Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
-rw-r--r--drivers/ufs/core/ufs-rpmb.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/ufs/core/ufs-rpmb.c b/drivers/ufs/core/ufs-rpmb.c
index ffad049872b9..431f85b36876 100644
--- a/drivers/ufs/core/ufs-rpmb.c
+++ b/drivers/ufs/core/ufs-rpmb.c
@@ -69,6 +69,10 @@ static int ufs_rpmb_route_frames(struct device *dev, u8 *req, unsigned int req_l
hba = ufs_rpmb->hba;
+ /* req_resp is at the end of an RPMB frame. */
+ if (req_len < sizeof(*frm_out))
+ return -EINVAL;
+
req_type = be16_to_cpu(frm_out->req_resp);
switch (req_type) {