[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