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)
committerMauro Carvalho Chehab <mchehab@kernel.org>
Sat, 24 Sep 2022 06:46:16 +0000 (08:46 +0200)
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>
drivers/media/cec/platform/cros-ec/cros-ec-cec.c

index 3b583ed4da9dfee9c7e319acf8087d3d8f3c8d5b..e5ebaa58be45744c3bac88e23ea0e4c6c397e2b7 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);