]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
atomisp: fix potential NULL pointer dereferences
authorHans Verkuil <hverkuil-cisco@xs4all.nl>
Mon, 24 Oct 2022 13:28:45 +0000 (15:28 +0200)
committerHans Verkuil <hverkuil-cisco@xs4all.nl>
Mon, 24 Oct 2022 17:03:54 +0000 (19:03 +0200)
The asd pointer is used in lockdep_assert_held() before the check if
asd is NULL.

This fixes two smatch warnings:

drivers/staging/media/atomisp/pci/atomisp_cmd.c:3697 atomisp_handle_parameter_and_buffer() warn: variable dereferenced before check 'asd' (see line 3695)
drivers/staging/media/atomisp/pci/atomisp_cmd.c:3779 atomisp_set_parameters() warn: variable dereferenced before check 'asd' (see line 3777)

Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
drivers/staging/media/atomisp/pci/atomisp_cmd.c

index 90f25cc2222764f0533c28347d75de02b31a4ad3..eeb66b3b79abea710d94d092c842859b0f1e3109 100644 (file)
@@ -3692,14 +3692,14 @@ void atomisp_handle_parameter_and_buffer(struct atomisp_video_pipe *pipe)
        unsigned long irqflags;
        bool need_to_enqueue_buffer = false;
 
-       lockdep_assert_held(&asd->isp->mutex);
-
        if (!asd) {
                dev_err(pipe->isp->dev, "%s(): asd is NULL, device is %s\n",
                        __func__, pipe->vdev.name);
                return;
        }
 
+       lockdep_assert_held(&asd->isp->mutex);
+
        if (atomisp_is_vf_pipe(pipe))
                return;
 
@@ -3774,14 +3774,14 @@ int atomisp_set_parameters(struct video_device *vdev,
        struct atomisp_css_params *css_param = &asd->params.css_param;
        int ret;
 
-       lockdep_assert_held(&asd->isp->mutex);
-
        if (!asd) {
                dev_err(pipe->isp->dev, "%s(): asd is NULL, device is %s\n",
                        __func__, vdev->name);
                return -EINVAL;
        }
 
+       lockdep_assert_held(&asd->isp->mutex);
+
        if (!asd->stream_env[ATOMISP_INPUT_STREAM_GENERAL].stream) {
                dev_err(asd->isp->dev, "%s: internal error!\n", __func__);
                return -EINVAL;