media: tuners: fix error return code of hybrid_tuner_request_state()
authorJia-Ju Bai <baijiaju1990@gmail.com>
Sat, 6 Mar 2021 14:30:28 +0000 (15:30 +0100)
committerMauro Carvalho Chehab <mchehab+huawei@kernel.org>
Mon, 22 Mar 2021 09:21:03 +0000 (10:21 +0100)
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 <oslab@tsinghua.edu.cn>
Signed-off-by: Jia-Ju Bai <baijiaju1990@gmail.com>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
drivers/media/tuners/tuner-i2c.h

index 724952e..07aeead 100644 (file)
@@ -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 (!state) {                                           \
+                       __ret = -ENOMEM;                                \
                        goto __fail;                                    \
+               }                                                       \
                state->i2c_props.addr = i2caddr;                        \
                state->i2c_props.adap = i2cadap;                        \
                state->i2c_props.name = devname;                        \