If devm_kzalloc gives NULL instead of allocating priv,
execution goes to free_drm where priv is dereferenced
calling meson_encoder_dsi_remove, meson_encoder_hdmi_remove
and meson_encoder_cvbs_remove.

Add NULL-check for priv.

Found by Linux Verification Center (linuxtesting.org) with SVACE.

Signed-off-by: Anastasia Belova <abel...@astralinux.ru>
---
 drivers/gpu/drm/meson/meson_drv.c | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/meson/meson_drv.c 
b/drivers/gpu/drm/meson/meson_drv.c
index 4bd0baa2a4f5..3d143340e3f7 100644
--- a/drivers/gpu/drm/meson/meson_drv.c
+++ b/drivers/gpu/drm/meson/meson_drv.c
@@ -373,9 +373,11 @@ static int meson_drv_bind_master(struct device *dev, bool 
has_components)
 free_drm:
        drm_dev_put(drm);
 
-       meson_encoder_dsi_remove(priv);
-       meson_encoder_hdmi_remove(priv);
-       meson_encoder_cvbs_remove(priv);
+       if (priv) {
+               meson_encoder_dsi_remove(priv);
+               meson_encoder_hdmi_remove(priv);
+               meson_encoder_cvbs_remove(priv);
+       }
 
        if (has_components)
                component_unbind_all(dev, drm);
-- 
2.30.2

Reply via email to