When kzalloc() fails and state is NULL, no error return code is
assigned.
To fix this bug, __ret is assigned with -ENOMEM in this case.

Reported-by: TOTE Robot <os...@tsinghua.edu.cn>
Signed-off-by: Jia-Ju Bai <baijiaju1...@gmail.com>
---
 drivers/media/tuners/tuner-i2c.h | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/media/tuners/tuner-i2c.h b/drivers/media/tuners/tuner-i2c.h
index 724952e001cd..26cf7da29f30 100644
--- a/drivers/media/tuners/tuner-i2c.h
+++ b/drivers/media/tuners/tuner-i2c.h
@@ -133,8 +133,10 @@ static inline int tuner_i2c_xfer_send_recv(struct 
tuner_i2c_props *props,
        }                                                               \
        if (0 == __ret) {                                               \
                state = kzalloc(sizeof(type), GFP_KERNEL);              \
-               if (NULL == state)                                      \
+               if (NULL == state) {                            \
+                       __ret = -ENOMEM;                                \
                        goto __fail;                                    \
+               }                                                       \
                state->i2c_props.addr = i2caddr;                        \
                state->i2c_props.adap = i2cadap;                        \
                state->i2c_props.name = devname;                        \
-- 
2.17.1

Reply via email to