media: gp8psk: initialize stats at power control logic
authorMauro Carvalho Chehab <mchehab+huawei@kernel.org>
Fri, 27 Nov 2020 06:40:21 +0000 (07:40 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 9 Jan 2021 12:37:38 +0000 (13:37 +0100)
commit d0ac1a26ed5943127cb0156148735f5f52a07075 upstream.

As reported on:
https://lore.kernel.org/linux-media/20190627222020.45909-1-willemdebruijn.kernel@gmail.com/

if gp8psk_usb_in_op() returns an error, the status var is not
initialized. Yet, this var is used later on, in order to
identify:
- if the device was already started;
- if firmware has loaded;
- if the LNBf was powered on.

Using status = 0 seems to ensure that everything will be
properly powered up.

So, instead of the proposed solution, let's just set
status = 0.

Reported-by: syzbot <syzkaller@googlegroups.com>
Reported-by: Willem de Bruijn <willemb@google.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/media/usb/dvb-usb/gp8psk.c

index 37f062225ed213a00f54ed6dc551971a41c8f5c5..aac677f6aaa4f7c0840f58b14346d8778dff1975 100644 (file)
@@ -185,7 +185,7 @@ out_rel_fw:
 
 static int gp8psk_power_ctrl(struct dvb_usb_device *d, int onoff)
 {
-       u8 status, buf;
+       u8 status = 0, buf;
        int gp_product_id = le16_to_cpu(d->udev->descriptor.idProduct);
 
        if (onoff) {