|
Takashi Iwai |
782005 |
From 780d815dcc9b34d93ae69385a8465c38d423ff0f Mon Sep 17 00:00:00 2001
|
|
Takashi Iwai |
782005 |
From: Tom Rix <trix@redhat.com>
|
|
Takashi Iwai |
782005 |
Date: Mon, 10 Aug 2020 21:25:18 +0200
|
|
Takashi Iwai |
782005 |
Subject: [PATCH] media: tw5864: check status of tw5864_frameinterval_get
|
|
Takashi Iwai |
782005 |
Git-commit: 780d815dcc9b34d93ae69385a8465c38d423ff0f
|
|
Takashi Iwai |
782005 |
Patch-mainline: v5.10-rc1
|
|
Takashi Iwai |
782005 |
References: git-fixes
|
|
Takashi Iwai |
782005 |
|
|
Takashi Iwai |
782005 |
clang static analysis reports this problem
|
|
Takashi Iwai |
782005 |
|
|
Takashi Iwai |
782005 |
tw5864-video.c:773:32: warning: The left expression of the compound
|
|
Takashi Iwai |
782005 |
assignment is an uninitialized value.
|
|
Takashi Iwai |
782005 |
The computed value will also be garbage
|
|
Takashi Iwai |
782005 |
fintv->stepwise.max.numerator *= std_max_fps;
|
|
Takashi Iwai |
782005 |
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^
|
|
Takashi Iwai |
782005 |
|
|
Takashi Iwai |
782005 |
stepwise.max is set with frameinterval, which comes from
|
|
Takashi Iwai |
782005 |
|
|
Takashi Iwai |
782005 |
ret = tw5864_frameinterval_get(input, &frameinterval);
|
|
Takashi Iwai |
782005 |
fintv->stepwise.step = frameinterval;
|
|
Takashi Iwai |
782005 |
fintv->stepwise.min = frameinterval;
|
|
Takashi Iwai |
782005 |
fintv->stepwise.max = frameinterval;
|
|
Takashi Iwai |
782005 |
fintv->stepwise.max.numerator *= std_max_fps;
|
|
Takashi Iwai |
782005 |
|
|
Takashi Iwai |
782005 |
When tw5864_frameinterval_get() fails, frameinterval is not
|
|
Takashi Iwai |
782005 |
set. So check the status and fix another similar problem.
|
|
Takashi Iwai |
782005 |
|
|
Takashi Iwai |
782005 |
Signed-off-by: Tom Rix <trix@redhat.com>
|
|
Takashi Iwai |
782005 |
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
|
|
Takashi Iwai |
782005 |
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
|
|
Takashi Iwai |
782005 |
Acked-by: Takashi Iwai <tiwai@suse.de>
|
|
Takashi Iwai |
782005 |
|
|
Takashi Iwai |
782005 |
---
|
|
Takashi Iwai |
782005 |
drivers/media/pci/tw5864/tw5864-video.c | 6 ++++++
|
|
Takashi Iwai |
782005 |
1 file changed, 6 insertions(+)
|
|
Takashi Iwai |
782005 |
|
|
Takashi Iwai |
782005 |
diff --git a/drivers/media/pci/tw5864/tw5864-video.c b/drivers/media/pci/tw5864/tw5864-video.c
|
|
Takashi Iwai |
782005 |
index f4bc72bbe2c5..9131265c2b87 100644
|
|
Takashi Iwai |
782005 |
--- a/drivers/media/pci/tw5864/tw5864-video.c
|
|
Takashi Iwai |
782005 |
+++ b/drivers/media/pci/tw5864/tw5864-video.c
|
|
Takashi Iwai |
782005 |
@@ -767,6 +767,9 @@ static int tw5864_enum_frameintervals(struct file *file, void *priv,
|
|
Takashi Iwai |
782005 |
fintv->type = V4L2_FRMIVAL_TYPE_STEPWISE;
|
|
Takashi Iwai |
782005 |
|
|
Takashi Iwai |
782005 |
ret = tw5864_frameinterval_get(input, &frameinterval);
|
|
Takashi Iwai |
782005 |
+ if (ret)
|
|
Takashi Iwai |
782005 |
+ return ret;
|
|
Takashi Iwai |
782005 |
+
|
|
Takashi Iwai |
782005 |
fintv->stepwise.step = frameinterval;
|
|
Takashi Iwai |
782005 |
fintv->stepwise.min = frameinterval;
|
|
Takashi Iwai |
782005 |
fintv->stepwise.max = frameinterval;
|
|
Takashi Iwai |
782005 |
@@ -785,6 +788,9 @@ static int tw5864_g_parm(struct file *file, void *priv,
|
|
Takashi Iwai |
782005 |
cp->capability = V4L2_CAP_TIMEPERFRAME;
|
|
Takashi Iwai |
782005 |
|
|
Takashi Iwai |
782005 |
ret = tw5864_frameinterval_get(input, &cp->timeperframe);
|
|
Takashi Iwai |
782005 |
+ if (ret)
|
|
Takashi Iwai |
782005 |
+ return ret;
|
|
Takashi Iwai |
782005 |
+
|
|
Takashi Iwai |
782005 |
cp->timeperframe.numerator *= input->frame_interval;
|
|
Takashi Iwai |
782005 |
cp->capturemode = 0;
|
|
Takashi Iwai |
782005 |
cp->readbuffers = 2;
|
|
Takashi Iwai |
782005 |
--
|
|
Takashi Iwai |
782005 |
2.16.4
|
|
Takashi Iwai |
782005 |
|