diff mbox series

drm/vkms: fix variable dereferenced before check warning

Message ID 20220908105623.72777-1-harshit.m.mogalapalli@oracle.com (mailing list archive)
State New, archived
Headers show
Series drm/vkms: fix variable dereferenced before check warning | expand

Commit Message

Harshit Mogalapalli Sept. 8, 2022, 10:56 a.m. UTC
Smatch warns:

drivers/gpu/drm/vkms/vkms_plane.c:110 vkms_plane_atomic_update() warn:
 variable dereferenced before check 'fb' (see line 108)

Fix the warning by moving the dereference after the NULL check.

Fixes: 8ba1648567e2 ("drm: vkms: Refactor the plane composer to accept new formats")
Signed-off-by: Harshit Mogalapalli <harshit.m.mogalapalli@oracle.com>
---
 drivers/gpu/drm/vkms/vkms_plane.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

Comments

Melissa Wen Sept. 10, 2022, 7:14 p.m. UTC | #1
On 09/08, Harshit Mogalapalli wrote:
> Smatch warns:
> 
> drivers/gpu/drm/vkms/vkms_plane.c:110 vkms_plane_atomic_update() warn:
>  variable dereferenced before check 'fb' (see line 108)
> 
> Fix the warning by moving the dereference after the NULL check.
> 
> Fixes: 8ba1648567e2 ("drm: vkms: Refactor the plane composer to accept new formats")
> Signed-off-by: Harshit Mogalapalli <harshit.m.mogalapalli@oracle.com>
> ---
>  drivers/gpu/drm/vkms/vkms_plane.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/vkms/vkms_plane.c b/drivers/gpu/drm/vkms/vkms_plane.c
> index f4319066adcc..c3a845220e10 100644
> --- a/drivers/gpu/drm/vkms/vkms_plane.c
> +++ b/drivers/gpu/drm/vkms/vkms_plane.c
> @@ -105,11 +105,12 @@ static void vkms_plane_atomic_update(struct drm_plane *plane,
>  	struct drm_shadow_plane_state *shadow_plane_state;
>  	struct drm_framebuffer *fb = new_state->fb;
>  	struct vkms_frame_info *frame_info;
> -	u32 fmt = fb->format->format;
> +	u32 fmt;
>  
>  	if (!new_state->crtc || !fb)
>  		return;
>  
> +	fmt = fb->format->format;

Hi Harshit,

Nice catch.

Thanks,

Reviewed-by: Melissa Wen <mwen@igalia.com>

>  	vkms_plane_state = to_vkms_plane_state(new_state);
>  	shadow_plane_state = &vkms_plane_state->base;
>  
> -- 
> 2.31.1
>
diff mbox series

Patch

diff --git a/drivers/gpu/drm/vkms/vkms_plane.c b/drivers/gpu/drm/vkms/vkms_plane.c
index f4319066adcc..c3a845220e10 100644
--- a/drivers/gpu/drm/vkms/vkms_plane.c
+++ b/drivers/gpu/drm/vkms/vkms_plane.c
@@ -105,11 +105,12 @@  static void vkms_plane_atomic_update(struct drm_plane *plane,
 	struct drm_shadow_plane_state *shadow_plane_state;
 	struct drm_framebuffer *fb = new_state->fb;
 	struct vkms_frame_info *frame_info;
-	u32 fmt = fb->format->format;
+	u32 fmt;
 
 	if (!new_state->crtc || !fb)
 		return;
 
+	fmt = fb->format->format;
 	vkms_plane_state = to_vkms_plane_state(new_state);
 	shadow_plane_state = &vkms_plane_state->base;