media: cros-ec-cec: limit msg.len to CEC_MAX_MSG_SIZE
authorHans Verkuil <hverkuil-cisco@xs4all.nl>
Wed, 24 Aug 2022 07:06:19 +0000 (09:06 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 10 Nov 2022 17:15:33 +0000 (18:15 +0100)
[ Upstream commit 2dc73b48665411a08c4e5f0f823dea8510761603 ]

I expect that the hardware will have limited this to 16, but just in
case it hasn't, check for this corner case.

Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/media/cec/platform/cros-ec/cros-ec-cec.c

index 2d95e16..f66699d 100644 (file)
@@ -44,6 +44,8 @@ static void handle_cec_message(struct cros_ec_cec *cros_ec_cec)
        uint8_t *cec_message = cros_ec->event_data.data.cec_message;
        unsigned int len = cros_ec->event_size;
 
+       if (len > CEC_MAX_MSG_SIZE)
+               len = CEC_MAX_MSG_SIZE;
        cros_ec_cec->rx_msg.len = len;
        memcpy(cros_ec_cec->rx_msg.msg, cec_message, len);