瀏覽代碼

disp: msm: sde: Add DSPP NULL pointer check in reg dma

Add DSPP NULL pointer check in reg dma when get dspp block.
Change fixes the possibility of kernel NULL pointer dereference
issue in stress test.

Change-Id: I9aa5514f7508cd7e316daf9e73fef313e6d1c9d4
Xu Yang 6 年之前
父節點
當前提交
9b14f40e90
共有 1 個文件被更改,包括 10 次插入0 次删除
  1. 10 0
      msm/sde/sde_hw_reg_dma_v1_color_proc.c

+ 10 - 0
msm/sde/sde_hw_reg_dma_v1_color_proc.c

@@ -379,6 +379,11 @@ static int reg_dmav1_get_dspp_blk(struct sde_hw_cp_cfg *hw_cfg,
 
 	/* Treat first dspp as master to simplify setup */
 	dspp = hw_cfg->dspp[0];
+	if(!dspp) {
+		DRM_ERROR("Invalid dspp NULL");
+		return -EINVAL;
+	}
+
 	if (hw_cfg->broadcast_disabled) {
 		*blk = dspp_mapping[curr_dspp];
 		(*num_of_mixers)++;
@@ -390,6 +395,11 @@ static int reg_dmav1_get_dspp_blk(struct sde_hw_cp_cfg *hw_cfg,
 
 		for (i = 0 ; i < hw_cfg->num_of_mixers; i++) {
 			dspp = hw_cfg->dspp[i];
+			if (!dspp) {
+				DRM_ERROR("Invalid dspp NULL");
+				rc = -EINVAL;
+				break;
+			}
 			if (dspp->idx >= DSPP_MAX) {
 				DRM_ERROR("Invalid dspp idx %d", dspp->idx);
 				rc = -EINVAL;