]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
media: i2c: tc358746: check fmt validity
authorHans Verkuil <hverkuil-cisco@xs4all.nl>
Fri, 6 Oct 2023 10:08:48 +0000 (12:08 +0200)
committerHans Verkuil <hverkuil-cisco@xs4all.nl>
Wed, 11 Oct 2023 14:21:33 +0000 (16:21 +0200)
Check if the format was really found.

Fixes smatch warning:

drivers/media/i2c/tc358746.c:790 tc358746_set_fmt() error: 'fmt' dereferencing possible ERR_PTR()

Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
CC: Sakari Ailus <sakari.ailus@linux.intel.com>
Reviewed-by: Sakari Ailus <sakari.ailus@linux.intel.com>
drivers/media/i2c/tc358746.c

index 566f5eaddd572ef2fa7a1d4192773c741212a028..ce612a47ba84830918515e40d3105c3b003826fb 100644 (file)
@@ -784,8 +784,12 @@ static int tc358746_set_fmt(struct v4l2_subdev *sd,
        sink_fmt = v4l2_subdev_get_pad_format(sd, sd_state, TC358746_SINK);
 
        fmt = tc358746_get_format_by_code(format->pad, format->format.code);
-       if (IS_ERR(fmt))
+       if (IS_ERR(fmt)) {
                fmt = tc358746_get_format_by_code(format->pad, tc358746_def_fmt.code);
+               // Can't happen, but just in case...
+               if (WARN_ON(IS_ERR(fmt)))
+                       return -EINVAL;
+       }
 
        format->format.code = fmt->code;
        format->format.field = V4L2_FIELD_NONE;