On Tue Dec 3 10:10:23 2024 +0200, Sakari Ailus wrote: > The length field of the CCS static data blocks was mishandled, leading to > wrong interpretation of the length header for blocks that are 16 kiB in > size. Such large blocks are very, very rare and so this wasn't found > earlier. > > As the length is used as part of input validation, the issue has no > security implications. > > Fixes: a6b396f410b1 ("media: ccs: Add CCS static data parser library") > Cc: sta...@vger.kernel.org > Signed-off-by: Sakari Ailus <sakari.ai...@linux.intel.com> > Signed-off-by: Mauro Carvalho Chehab <mchehab+hua...@kernel.org>
Patch committed. Thanks, Mauro Carvalho Chehab drivers/media/i2c/ccs/ccs-data.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) --- diff --git a/drivers/media/i2c/ccs/ccs-data.c b/drivers/media/i2c/ccs/ccs-data.c index 08400edf77ce..9d42137f4799 100644 --- a/drivers/media/i2c/ccs/ccs-data.c +++ b/drivers/media/i2c/ccs/ccs-data.c @@ -97,7 +97,7 @@ ccs_data_parse_length_specifier(const struct __ccs_data_length_specifier *__len, plen = ((size_t) (__len3->length[0] & ((1 << CCS_DATA_LENGTH_SPECIFIER_SIZE_SHIFT) - 1)) - << 16) + (__len3->length[0] << 8) + __len3->length[1]; + << 16) + (__len3->length[1] << 8) + __len3->length[2]; break; } default: