lkml.org 
[lkml]   [2020]   [Oct]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH AUTOSEL 4.19 19/60] media: tw5864: check status of tw5864_frameinterval_get
    Date
    From: Tom Rix <trix@redhat.com>

    [ Upstream commit 780d815dcc9b34d93ae69385a8465c38d423ff0f ]

    clang static analysis reports this problem

    tw5864-video.c:773:32: warning: The left expression of the compound
    assignment is an uninitialized value.
    The computed value will also be garbage
    fintv->stepwise.max.numerator *= std_max_fps;
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^

    stepwise.max is set with frameinterval, which comes from

    ret = tw5864_frameinterval_get(input, &frameinterval);
    fintv->stepwise.step = frameinterval;
    fintv->stepwise.min = frameinterval;
    fintv->stepwise.max = frameinterval;
    fintv->stepwise.max.numerator *= std_max_fps;

    When tw5864_frameinterval_get() fails, frameinterval is not
    set. So check the status and fix another similar problem.

    Signed-off-by: Tom Rix <trix@redhat.com>
    Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
    Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/media/pci/tw5864/tw5864-video.c | 6 ++++++
    1 file changed, 6 insertions(+)

    diff --git a/drivers/media/pci/tw5864/tw5864-video.c b/drivers/media/pci/tw5864/tw5864-video.c
    index 6c40e60ac9939..b0f8d1532b700 100644
    --- a/drivers/media/pci/tw5864/tw5864-video.c
    +++ b/drivers/media/pci/tw5864/tw5864-video.c
    @@ -776,6 +776,9 @@ static int tw5864_enum_frameintervals(struct file *file, void *priv,
    fintv->type = V4L2_FRMIVAL_TYPE_STEPWISE;

    ret = tw5864_frameinterval_get(input, &frameinterval);
    + if (ret)
    + return ret;
    +
    fintv->stepwise.step = frameinterval;
    fintv->stepwise.min = frameinterval;
    fintv->stepwise.max = frameinterval;
    @@ -794,6 +797,9 @@ static int tw5864_g_parm(struct file *file, void *priv,
    cp->capability = V4L2_CAP_TIMEPERFRAME;

    ret = tw5864_frameinterval_get(input, &cp->timeperframe);
    + if (ret)
    + return ret;
    +
    cp->timeperframe.numerator *= input->frame_interval;
    cp->capturemode = 0;
    cp->readbuffers = 2;
    --
    2.25.1
    \
     
     \ /
      Last update: 2020-10-27 01:20    [W:4.452 / U:0.076 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site