mmc: core: guard dereference of optional parameter
authortcharding <me@tobin.cc>
Wed, 15 Mar 2017 08:48:03 +0000 (19:48 +1100)
committerNitin Garg <nitin.garg@nxp.com>
Mon, 19 Mar 2018 20:37:07 +0000 (15:37 -0500)
Various functions take as parameter an optional pointer. Pointer
should be guarded with non-NULL check before dereferencing.

Add non-NULL check before dereference of pointer.

Signed-off-by: Tobin C. Harding <me@tobin.cc>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
(cherry picked from commit 9b980d950e5bcdce6dbc15a9c00ff960beeea28b)

drivers/mmc/core/sdio_io.c

index 74195d7..3482314 100644 (file)
@@ -373,7 +373,8 @@ u8 sdio_readb(struct sdio_func *func, unsigned int addr, int *err_ret)
        u8 val;
 
        if (!func) {
-               *err_ret = -EINVAL;
+               if (err_ret)
+                       *err_ret = -EINVAL;
                return 0xFF;
        }
 
@@ -407,7 +408,8 @@ void sdio_writeb(struct sdio_func *func, u8 b, unsigned int addr, int *err_ret)
        int ret;
 
        if (!func) {
-               *err_ret = -EINVAL;
+               if (err_ret)
+                       *err_ret = -EINVAL;
                return;
        }
 
@@ -635,7 +637,8 @@ unsigned char sdio_f0_readb(struct sdio_func *func, unsigned int addr,
        unsigned char val;
 
        if (!func) {
-               *err_ret = -EINVAL;
+               if (err_ret)
+                       *err_ret = -EINVAL;
                return 0xFF;
        }
 
@@ -673,7 +676,8 @@ void sdio_f0_writeb(struct sdio_func *func, unsigned char b, unsigned int addr,
        int ret;
 
        if (!func) {
-               *err_ret = -EINVAL;
+               if (err_ret)
+                       *err_ret = -EINVAL;
                return;
        }