From c6aaa0076b28aced60aa295f9a0453c969653bdc Mon Sep 17 00:00:00 2001 From: valadaa48 Date: Fri, 9 Oct 2020 23:54:17 -0400 Subject: [PATCH] drm_gfx: fix race condition in drm_surface_set_aspect --- gfx/drivers/drm_gfx.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gfx/drivers/drm_gfx.c b/gfx/drivers/drm_gfx.c index 04f0a57524..0758ad348d 100644 --- a/gfx/drivers/drm_gfx.c +++ b/gfx/drivers/drm_gfx.c @@ -210,7 +210,8 @@ static void drm_surface_free(void *data, struct drm_surface **sp) /* Changes surface ratio only without recreating the buffers etc. */ static void drm_surface_set_aspect(struct drm_surface *surface, float aspect) { - surface->aspect = aspect; + if (surface) + surface->aspect = aspect; } static void drm_surface_setup(void *data, int src_width, int src_height, @@ -922,7 +923,7 @@ static void drm_set_aspect_ratio (void *data, unsigned aspect_ratio_idx) /* Here we obtain the new aspect ratio. */ float new_aspect = aspectratio_lut[aspect_ratio_idx].value; - if (_drmvars->current_aspect != new_aspect) + if (_drmvars && _drmvars->current_aspect != new_aspect) { _drmvars->current_aspect = new_aspect; drm_surface_set_aspect(_drmvars->main_surface, new_aspect);