summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarsten Haitzler <carsten.haitzler@arm.com>2020-11-27 14:00:54 +0300
committerLiviu Dudau <liviu.dudau@arm.com>2020-12-18 19:35:53 +0300
commita24cf238c771a1d3f0dc68b9f2b62c6d23359026 (patch)
tree869eb17ca6547efa7da1082cd4d6bc7843b8f995
parent8e8fbfc682481b7f814985341020129161afd9de (diff)
downloadlinux-a24cf238c771a1d3f0dc68b9f2b62c6d23359026.tar.xz
drm/komeda: Handle NULL pointer access code path in error case
komeda_component_get_old_state() technically can return a NULL pointer. komeda_compiz_set_input() even warns when this happens, but then proceeeds to use that NULL pointer to compare memory content there agains the new state to see if it changed. In this case, it's better to assume that the input changed as there is no old state to compare against and thus assume the changes happen anyway. Signed-off-by: Carsten Haitzler <carsten.haitzler@arm.com> Reviewed-by: Steven Price <steven.price@arm.com> Acked-by: Liviu Dudau <liviu.dudau@arm.com> [Applied small spelling fixes and fix suggested by Steven Price] Signed-off-by: Liviu Dudau <liviu.dudau@arm.com> Link: https://patchwork.freedesktop.org/patch/msgid/20201127110054.133686-1-carsten.haitzler@foss.arm.com
-rw-r--r--drivers/gpu/drm/arm/display/komeda/komeda_pipeline_state.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/gpu/drm/arm/display/komeda/komeda_pipeline_state.c b/drivers/gpu/drm/arm/display/komeda/komeda_pipeline_state.c
index 8f32ae7c25d0..5c085116de3f 100644
--- a/drivers/gpu/drm/arm/display/komeda/komeda_pipeline_state.c
+++ b/drivers/gpu/drm/arm/display/komeda/komeda_pipeline_state.c
@@ -704,10 +704,10 @@ komeda_compiz_set_input(struct komeda_compiz *compiz,
cin->layer_alpha = dflow->layer_alpha;
old_st = komeda_component_get_old_state(&compiz->base, drm_st);
- WARN_ON(!old_st);
/* compare with old to check if this input has been changed */
- if (memcmp(&(to_compiz_st(old_st)->cins[idx]), cin, sizeof(*cin)))
+ if (WARN_ON(!old_st) ||
+ memcmp(&(to_compiz_st(old_st)->cins[idx]), cin, sizeof(*cin)))
c_st->changed_active_inputs |= BIT(idx);
komeda_component_add_input(c_st, &dflow->input, idx);