media: dvb-usb: fix uninit-value in vp702x_read_mac_addr
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>
This commit is contained in:
parent
c5453769f7
commit
797c061ad7
@ -291,16 +291,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)
|
||||
|
Loading…
x
Reference in New Issue
Block a user