Browse Source

disp: msm: add proper null checks and propagate error

Fix possible null pointer dereferencing and propagate error
code during early return.

Signed-off-by: Samantha Tran <[email protected]>
Samantha Tran 6 years ago
parent
commit
c00bf10768
2 changed files with 10 additions and 3 deletions
  1. 7 2
      msm/dp/dp_drm.c
  2. 3 1
      msm/msm_fb.c

+ 7 - 2
msm/dp/dp_drm.c

@@ -493,12 +493,17 @@ int dp_connector_atomic_check(struct drm_connector *connector,
 	struct drm_connector_state *c_state)
 {
 	struct sde_connector *sde_conn;
-	struct drm_connector_state *old_state =
-		drm_atomic_get_old_connector_state(c_state->state, connector);
+	struct drm_connector_state *old_state;
 
 	if (!connector || !display)
 		return -EINVAL;
 
+	old_state =
+		drm_atomic_get_old_connector_state(c_state->state, connector);
+
+	if (!old_state)
+		return -EINVAL;
+
 	sde_conn = to_sde_connector(connector);
 
 	/*

+ 3 - 1
msm/msm_fb.c

@@ -378,8 +378,10 @@ struct drm_framebuffer *msm_framebuffer_init(struct drm_device *dev,
 		const struct drm_format_info *info;
 
 		info = drm_format_info(mode_cmd->pixel_format);
-		if (!info || num_planes > ARRAY_SIZE(info->cpp))
+		if (!info || num_planes > ARRAY_SIZE(info->cpp)) {
+			ret = -EINVAL;
 			goto fail;
+		}
 
 		for (i = 0; i < num_planes; i++) {
 			unsigned int width = mode_cmd->width / (i ? hsub : 1);