OSDN Git Service

mmc: core: guard dereference of optional parameter
authortcharding <me@tobin.cc>
Wed, 15 Mar 2017 08:48:03 +0000 (19:48 +1100)
committerUlf Hansson <ulf.hansson@linaro.org>
Mon, 24 Apr 2017 19:41:23 +0000 (21:41 +0200)
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>
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;
        }