Message ID | 20210929121857.213922-1-colin.king@canonical.com (mailing list archive) |
---|---|
State | Not Applicable |
Headers | show |
Series | drm/msm: Fix null pointer dereference on pointer edp | expand |
On 29/09/2021 15:18, Colin King wrote: > From: Colin Ian King <colin.king@canonical.com> > > The initialization of pointer dev dereferences pointer edp before > edp is null checked, so there is a potential null pointer deference > issue. Fix this by only dereferencing edp after edp has been null > checked. > > Addresses-Coverity: ("Dereference before null check") > Fixes: ab5b0107ccf3 ("drm/msm: Initial add eDP support in msm drm driver (v5)") > Signed-off-by: Colin Ian King <colin.king@canonical.com> Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> > --- > drivers/gpu/drm/msm/edp/edp_ctrl.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/msm/edp/edp_ctrl.c b/drivers/gpu/drm/msm/edp/edp_ctrl.c > index 4fb397ee7c84..fe1366b4c49f 100644 > --- a/drivers/gpu/drm/msm/edp/edp_ctrl.c > +++ b/drivers/gpu/drm/msm/edp/edp_ctrl.c > @@ -1116,7 +1116,7 @@ void msm_edp_ctrl_power(struct edp_ctrl *ctrl, bool on) > int msm_edp_ctrl_init(struct msm_edp *edp) > { > struct edp_ctrl *ctrl = NULL; > - struct device *dev = &edp->pdev->dev; > + struct device *dev; > int ret; > > if (!edp) { > @@ -1124,6 +1124,7 @@ int msm_edp_ctrl_init(struct msm_edp *edp) > return -EINVAL; > } > > + dev = &edp->pdev->dev; > ctrl = devm_kzalloc(dev, sizeof(*ctrl), GFP_KERNEL); > if (!ctrl) > return -ENOMEM; >
diff --git a/drivers/gpu/drm/msm/edp/edp_ctrl.c b/drivers/gpu/drm/msm/edp/edp_ctrl.c index 4fb397ee7c84..fe1366b4c49f 100644 --- a/drivers/gpu/drm/msm/edp/edp_ctrl.c +++ b/drivers/gpu/drm/msm/edp/edp_ctrl.c @@ -1116,7 +1116,7 @@ void msm_edp_ctrl_power(struct edp_ctrl *ctrl, bool on) int msm_edp_ctrl_init(struct msm_edp *edp) { struct edp_ctrl *ctrl = NULL; - struct device *dev = &edp->pdev->dev; + struct device *dev; int ret; if (!edp) { @@ -1124,6 +1124,7 @@ int msm_edp_ctrl_init(struct msm_edp *edp) return -EINVAL; } + dev = &edp->pdev->dev; ctrl = devm_kzalloc(dev, sizeof(*ctrl), GFP_KERNEL); if (!ctrl) return -ENOMEM;