lkml.org 
[lkml]   [2021]   [Sep]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.14 053/217] media: dvb-usb: fix uninit-value in vp702x_read_mac_addr
    Date
    From: Dongliang Mu <mudongliangabcd@gmail.com>

    [ Upstream commit 797c061ad715a9a1480eb73f44b6939fbe3209ed ]

    If vp702x_usb_in_op fails, the mac address is not initialized.
    And vp702x_read_mac_addr does not handle this failure, which leads to
    the uninit-value in dvb_usb_adapter_dvb_init.

    Fix this by handling the failure of vp702x_usb_in_op.

    Fixes: 786baecfe78f ("[media] dvb-usb: move it to drivers/media/usb/dvb-usb")
    Signed-off-by: Dongliang Mu <mudongliangabcd@gmail.com>
    Signed-off-by: Sean Young <sean@mess.org>
    Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/media/usb/dvb-usb/vp702x.c | 12 +++++++++---
    1 file changed, 9 insertions(+), 3 deletions(-)

    diff --git a/drivers/media/usb/dvb-usb/vp702x.c b/drivers/media/usb/dvb-usb/vp702x.c
    index 40de33de90a7..5c3b0a7ca27e 100644
    --- a/drivers/media/usb/dvb-usb/vp702x.c
    +++ b/drivers/media/usb/dvb-usb/vp702x.c
    @@ -294,16 +294,22 @@ static int vp702x_rc_query(struct dvb_usb_device *d, u32 *event, int *state)
    static int vp702x_read_mac_addr(struct dvb_usb_device *d,u8 mac[6])
    {
    u8 i, *buf;
    + int ret;
    struct vp702x_device_state *st = d->priv;

    mutex_lock(&st->buf_mutex);
    buf = st->buf;
    - for (i = 6; i < 12; i++)
    - vp702x_usb_in_op(d, READ_EEPROM_REQ, i, 1, &buf[i - 6], 1);
    + for (i = 6; i < 12; i++) {
    + ret = vp702x_usb_in_op(d, READ_EEPROM_REQ, i, 1,
    + &buf[i - 6], 1);
    + if (ret < 0)
    + goto err;
    + }

    memcpy(mac, buf, 6);
    +err:
    mutex_unlock(&st->buf_mutex);
    - return 0;
    + return ret;
    }

    static int vp702x_frontend_attach(struct dvb_usb_adapter *adap)
    --
    2.30.2


    \
     
     \ /
      Last update: 2021-09-20 19:17    [W:4.264 / U:0.412 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site