leds: blinkm: avoid uninitialized data use
authorArnd Bergmann <arnd@arndb.de>
Mon, 4 Dec 2017 14:45:29 +0000 (15:45 +0100)
committerJacek Anaszewski <jacek.anaszewski@gmail.com>
Mon, 8 Jan 2018 20:28:10 +0000 (21:28 +0100)
gcc-8 reports missing error handling in blinkm_detect, when blinkm()
fails, tmpargs[] is uninitialized:

drivers/leds/leds-blinkm.c: In function 'blinkm_detect':
drivers/leds/leds-blinkm.c:555:6: error: 'tmpargs' may be used uninitialized in this function [-Werror=maybe-uninitialized]

This adds a missing error checks.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Jacek Anaszewski <jacek.anaszewski@gmail.com>
drivers/leds/leds-blinkm.c

index d03ed6b..851c192 100644 (file)
@@ -549,8 +549,12 @@ static int blinkm_detect(struct i2c_client *client, struct i2c_board_info *info)
        /* make sure the blinkM is balanced (read/writes) */
        while (count > 0) {
                ret = blinkm_write(client, BLM_GET_ADDR, NULL);
+               if (ret)
+                       return ret;
                usleep_range(5000, 10000);
                ret = blinkm_read(client, BLM_GET_ADDR, tmpargs);
+               if (ret)
+                       return ret;
                usleep_range(5000, 10000);
                if (tmpargs[0] == 0x09)
                        count = 0;