summaryrefslogtreecommitdiffstats
path: root/drivers/media/i2c/adv7842.c
diff options
context:
space:
mode:
authorTom Rix <trix@redhat.com>2021-08-12 19:01:46 +0200
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2022-04-08 14:23:16 +0200
commit12cb301cc5cb681c0ada80dc070bf3e1345e7373 (patch)
treee6fc84fa05042d43f614128069600a40cb534ede /drivers/media/i2c/adv7842.c
parent0d05a58ea3b945491a36b4bc4d925903224141ea (diff)
downloadlinux-stable-12cb301cc5cb681c0ada80dc070bf3e1345e7373.tar.gz
linux-stable-12cb301cc5cb681c0ada80dc070bf3e1345e7373.tar.bz2
linux-stable-12cb301cc5cb681c0ada80dc070bf3e1345e7373.zip
media: video/hdmi: handle short reads of hdmi info frame.
[ Upstream commit 4a92fc6e55da5b87cecb572275deaff6ac9dd27e ] Calling hdmi_infoframe_unpack() with static sizeof(buffer) skips all the size checking done later in hdmi_infoframe_unpack(). A better value is the amount of data read into buffer. Fixes: 480b8b3e42c3 ("video/hdmi: Pass buffer size to infoframe unpack functions") Signed-off-by: Tom Rix <trix@redhat.com> 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>
Diffstat (limited to 'drivers/media/i2c/adv7842.c')
-rw-r--r--drivers/media/i2c/adv7842.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/media/i2c/adv7842.c b/drivers/media/i2c/adv7842.c
index 7f8acbdf0db4..8ab4c63839b4 100644
--- a/drivers/media/i2c/adv7842.c
+++ b/drivers/media/i2c/adv7842.c
@@ -2593,7 +2593,7 @@ static void log_infoframe(struct v4l2_subdev *sd, const struct adv7842_cfg_read_
for (i = 0; i < len; i++)
buffer[i + 3] = infoframe_read(sd, cri->payload_addr + i);
- if (hdmi_infoframe_unpack(&frame, buffer, sizeof(buffer)) < 0) {
+ if (hdmi_infoframe_unpack(&frame, buffer, len + 3) < 0) {
v4l2_err(sd, "%s: unpack of %s infoframe failed\n", __func__, cri->desc);
return;
}