Move initialization of sblk in _sspp_subblk_offset() after NULL check to
avoid potential NULL pointer dereference.

Fixes: 25fdd5933e4c ("drm/msm: Add SDM845 DPU support")
Reported-by: Dan Carpenter <dan.carpen...@oracle.com>
Signed-off-by: Jessica Zhang <jessz...@codeaurora.org>
---
 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_sspp.c | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_sspp.c 
b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_sspp.c
index 69eed7932486..f9460672176a 100644
--- a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_sspp.c
+++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_sspp.c
@@ -138,11 +138,13 @@ static int _sspp_subblk_offset(struct dpu_hw_pipe *ctx,
                u32 *idx)
 {
        int rc = 0;
-       const struct dpu_sspp_sub_blks *sblk = ctx->cap->sblk;
+       const struct dpu_sspp_sub_blks *sblk;
 
-       if (!ctx)
+       if (!ctx || !ctx->cap || !ctx->cap->sblk)
                return -EINVAL;
 
+       sblk = ctx->cap->sblk;
+
        switch (s_id) {
        case DPU_SSPP_SRC:
                *idx = sblk->src_blk.base;
@@ -419,7 +421,7 @@ static void _dpu_hw_sspp_setup_scaler3(struct dpu_hw_pipe 
*ctx,
 
        (void)pe;
        if (_sspp_subblk_offset(ctx, DPU_SSPP_SCALER_QSEED3, &idx) || !sspp
-               || !scaler3_cfg || !ctx || !ctx->cap || !ctx->cap->sblk)
+               || !scaler3_cfg)
                return;
 
        dpu_hw_setup_scaler3(&ctx->hw, scaler3_cfg, idx,
-- 
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
a Linux Foundation Collaborative Project

Reply via email to