mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-03 11:12:01 -04:00
media: atomisp: move null check to earlier point
`find_gmin_subdev()` that returns a pointer to `struct
gmin_subdev` can return NULL.
In `gmin_v2p8_ctrl()` there's a call to this function but the
possibility of a NULL was not checked before its being dereferenced,
i.e.:
/* Acquired here --------v */
struct gmin_subdev *gs = find_gmin_subdev(subdev);
/* v------Dereferenced here */
if (gs->v2p8_gpio >= 0) {
...
}
With this change we're null checking `find_gmin_subdev()` result
and we return an error if that's the case. We also WARN()
for the sake of debugging.
Signed-off-by: Cengiz Can <cengiz@kernel.wtf>
Reported-by: Coverity Static Analyzer CID 1465536
Suggested-by: Mauro Carvalho Chehab <mchehab@kernel.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
This commit is contained in:
committed by
Mauro Carvalho Chehab
parent
8d1fdaa50c
commit
9b734bb9e7
@@ -871,6 +871,9 @@ static int gmin_v2p8_ctrl(struct v4l2_subdev *subdev, int on)
|
||||
int ret;
|
||||
int value;
|
||||
|
||||
if (WARN_ON(!gs))
|
||||
return -ENODEV;
|
||||
|
||||
if (gs->v2p8_gpio >= 0) {
|
||||
pr_info("atomisp_gmin_platform: 2.8v power on GPIO %d\n",
|
||||
gs->v2p8_gpio);
|
||||
@@ -881,7 +884,7 @@ static int gmin_v2p8_ctrl(struct v4l2_subdev *subdev, int on)
|
||||
pr_err("V2P8 GPIO initialization failed\n");
|
||||
}
|
||||
|
||||
if (!gs || gs->v2p8_on == on)
|
||||
if (gs->v2p8_on == on)
|
||||
return 0;
|
||||
gs->v2p8_on = on;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user