[PATCH v2 05/11] firmware: arm_scmi: stop reading past PINCTRL_LIST_ASSOCIATIONS replies
From: Clément Le Goffic
Date: Fri Nov 13 2026 - 12:16:48 EST
The transport cuts a reply larger than the receive buffer, but the iterator
still reads every identifier the reply announces. Return an error instead.
Fixes: 2145af01b9cb ("firmware: arm_scmi: Add basic support for SCMI v3.2 pincontrol protocol")
Signed-off-by: Clément Le Goffic <clegoffic@xxxxxxxxxxxx>
---
drivers/firmware/arm/scmi/pinctrl.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/drivers/firmware/arm/scmi/pinctrl.c b/drivers/firmware/arm/scmi/pinctrl.c
index 18761ffbf893..b071d31b5c33 100644
--- a/drivers/firmware/arm/scmi/pinctrl.c
+++ b/drivers/firmware/arm/scmi/pinctrl.c
@@ -265,6 +265,9 @@ static int iter_pinctrl_assoc_update_state(struct scmi_iterator_state *st,
st->num_returned = RETURNED(r->flags);
st->num_remaining = REMAINING(r->flags);
+ if (st->rx_len < sizeof(*r) + sizeof(r->array[0]) * st->num_returned)
+ return -EINVAL;
+
return 0;
}
--
2.56.1