diff options
| author | Hans Verkuil <[email protected]> | 2022-10-24 13:28:45 +0000 |
|---|---|---|
| committer | Hans Verkuil <[email protected]> | 2022-10-24 17:03:54 +0000 |
| commit | 301fd0dd1827d3885f61620baf5033093b88d4cc (patch) | |
| tree | 392cb2eff74e36cbbdafd8a43f631b1497f987d8 | |
| parent | radio-terratec: Remove variable p (diff) | |
| download | kernel-301fd0dd1827d3885f61620baf5033093b88d4cc.tar.gz kernel-301fd0dd1827d3885f61620baf5033093b88d4cc.zip | |
atomisp: fix potential NULL pointer dereferences
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 <[email protected]>
| -rw-r--r-- | drivers/staging/media/atomisp/pci/atomisp_cmd.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/staging/media/atomisp/pci/atomisp_cmd.c b/drivers/staging/media/atomisp/pci/atomisp_cmd.c index 90f25cc22227..eeb66b3b79ab 100644 --- a/drivers/staging/media/atomisp/pci/atomisp_cmd.c +++ b/drivers/staging/media/atomisp/pci/atomisp_cmd.c @@ -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; |
