aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media
diff options
context:
space:
mode:
authorDaniil Dulov <d.dulov@aladdin.ru>2024-02-11 07:07:05 -0800
committerHans Verkuil <hverkuil-cisco@xs4all.nl>2024-02-16 11:46:33 +0100
commit0b70530ee740861f4776ff724fcc25023df1799a (patch)
tree3d40610c3b77e9dcc74aed5753ec32a22b10e511 /drivers/media
parent044c566d05035af5092f65a2912a28312dada8fe (diff)
downloadlinux-0b70530ee740861f4776ff724fcc25023df1799a.tar.gz
media: go7007: add check of return value of go7007_read_addr()
If go7007_read_addr() returns error channel is not assigned a value. In this case go to allocfail. Found by Linux Verification Center (linuxtesting.org) with SVACE. Fixes: 866b8695d67e ("Staging: add the go7007 video driver") Signed-off-by: Daniil Dulov <d.dulov@aladdin.ru> Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Diffstat (limited to 'drivers/media')
-rw-r--r--drivers/media/usb/go7007/go7007-usb.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/media/usb/go7007/go7007-usb.c b/drivers/media/usb/go7007/go7007-usb.c
index eeb85981e02b6..762c13e49bfa5 100644
--- a/drivers/media/usb/go7007/go7007-usb.c
+++ b/drivers/media/usb/go7007/go7007-usb.c
@@ -1201,7 +1201,9 @@ static int go7007_usb_probe(struct usb_interface *intf,
u16 channel;
/* read channel number from GPIO[1:0] */
- go7007_read_addr(go, 0x3c81, &channel);
+ if (go7007_read_addr(go, 0x3c81, &channel))
+ goto allocfail;
+
channel &= 0x3;
go->board_id = GO7007_BOARDID_ADLINK_MPG24;
usb->board = board = &board_adlink_mpg24;