Commit eecc70d2 authored by Sean Young's avatar Sean Young Committed by Mauro Carvalho Chehab
Browse files

media: digitv: don't continue if remote control state can't be read



This results in an uninitialized variable read.

Reported-by: default avatar <syzbot+6bf9606ee955b646c0e1@syzkaller.appspotmail.com>
Signed-off-by: default avatarSean Young <sean@mess.org>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab+huawei@kernel.org>
parent 342027c5
Loading
Loading
Loading
Loading
+7 −3
Original line number Diff line number Diff line
@@ -230,18 +230,22 @@ static struct rc_map_table rc_map_digitv_table[] = {

static int digitv_rc_query(struct dvb_usb_device *d, u32 *event, int *state)
{
	int i;
	int ret, i;
	u8 key[5];
	u8 b[4] = { 0 };

	*event = 0;
	*state = REMOTE_NO_KEY_PRESSED;

	digitv_ctrl_msg(d,USB_READ_REMOTE,0,NULL,0,&key[1],4);
	ret = digitv_ctrl_msg(d, USB_READ_REMOTE, 0, NULL, 0, &key[1], 4);
	if (ret)
		return ret;

	/* Tell the device we've read the remote. Not sure how necessary
	   this is, but the Nebula SDK does it. */
	digitv_ctrl_msg(d,USB_WRITE_REMOTE,0,b,4,NULL,0);
	ret = digitv_ctrl_msg(d, USB_WRITE_REMOTE, 0, b, 4, NULL, 0);
	if (ret)
		return ret;

	/* if something is inside the buffer, simulate key press */
	if (key[1] != 0)