media: atomisp: fix "variable dereferenced before check 'asd'"
authorTsuchiya Yuto <kitakar@gmail.com>
Wed, 1 Dec 2021 14:19:04 +0000 (15:19 +0100)
committerMauro Carvalho Chehab <mchehab+huawei@kernel.org>
Tue, 7 Dec 2021 10:29:57 +0000 (11:29 +0100)
There are two occurrences where the variable 'asd' is dereferenced
before check. Fix this issue by using the variable after the check.

Link: https://lore.kernel.org/linux-media/20211122074122.GA6581@kili/
Link: https://lore.kernel.org/linux-media/20211201141904.47231-1-kitakar@gmail.com
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Tsuchiya Yuto <kitakar@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
drivers/staging/media/atomisp/pci/atomisp_cmd.c
drivers/staging/media/atomisp/pci/atomisp_ioctl.c

index 5a90cc31cd1a559695faaef33281e88c169a6134..97d5a528969b85cc4d2981971e10a798645850c6 100644 (file)
@@ -5185,7 +5185,7 @@ static int atomisp_set_fmt_to_isp(struct video_device *vdev,
        int (*configure_pp_input)(struct atomisp_sub_device *asd,
                                  unsigned int width, unsigned int height) =
                                      configure_pp_input_nop;
-       u16 stream_index = atomisp_source_pad_to_stream_id(asd, source_pad);
+       u16 stream_index;
        const struct atomisp_in_fmt_conv *fc;
        int ret, i;
 
@@ -5194,6 +5194,7 @@ static int atomisp_set_fmt_to_isp(struct video_device *vdev,
                        __func__, vdev->name);
                return -EINVAL;
        }
+       stream_index = atomisp_source_pad_to_stream_id(asd, source_pad);
 
        v4l2_fh_init(&fh.vfh, vdev);
 
index 562789c7529935a63b655f791f7aa8e0f91f44e9..8fd470efd658e3f0bd017b1505d60d4653468dbe 100644 (file)
@@ -1182,7 +1182,7 @@ int __atomisp_reqbufs(struct file *file, void *fh,
        struct ia_css_frame *frame;
        struct videobuf_vmalloc_memory *vm_mem;
        u16 source_pad = atomisp_subdev_source_pad(vdev);
-       u16 stream_id = atomisp_source_pad_to_stream_id(asd, source_pad);
+       u16 stream_id;
        int ret = 0, i = 0;
 
        if (!asd) {
@@ -1190,6 +1190,7 @@ int __atomisp_reqbufs(struct file *file, void *fh,
                        __func__, vdev->name);
                return -EINVAL;
        }
+       stream_id = atomisp_source_pad_to_stream_id(asd, source_pad);
 
        if (req->count == 0) {
                mutex_lock(&pipe->capq.vb_lock);