usb: typec: wcove: fix uninitialized usbc_irq1 and usbc_irq2
authorColin Ian King <colin.king@canonical.com>
Wed, 11 Oct 2017 09:09:57 +0000 (10:09 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 17 Oct 2017 09:56:12 +0000 (11:56 +0200)
Calls to regmap_read may fail with an -EINVAL return without setting
usbc_irq1 and usbc_irq2.  The error handling clean up expects these
to have been set (or zero on a failure) and currently may try to
clear the wrong IRQs if the uninitalized garbage values in usbc_irq1
or usbc_irq2 are non-zero.  The simplest fix is to ensure these
variables are initialized to zero.

Detected by CoverityScan, CID#1457737 ("Uninitialized scalar variable")

Fixes: 3c4fb9f16921 ("usb: typec: wcove: start using tcpm for USB PD support")
Signed-off-by: Colin Ian King <colin.king@canonical.com>
Acked-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/typec/typec_wcove.c

index a47a93ad34b7a05fa32d3e795f40e760fec7ef75..4ce30a96796209a9a46bdbe1ed54740233f0a7fd 100644 (file)
@@ -441,8 +441,8 @@ static int wcove_read_rx_buffer(struct wcove_typec *wcove, void *msg)
 static irqreturn_t wcove_typec_irq(int irq, void *data)
 {
        struct wcove_typec *wcove = data;
-       unsigned int usbc_irq1;
-       unsigned int usbc_irq2;
+       unsigned int usbc_irq1 = 0;
+       unsigned int usbc_irq2 = 0;
        unsigned int cc1ctrl;
        int ret;