The Parfait (version 2.1.0) static code analysis tool found the
following NULL pointer derefernce problem.

- drivers/gpu/drm/drm_dp_mst_topology.c
The call to drm_dp_calculate_rad() in function drm_dp_port_setup_pdt()
could result in a NULL pointer being returned to port->mstb due to a
failure to allocate memory for port->mstb.

Signed-off-by: Joe Moriarty <joe.moria...@oracle.com>
Reviewed-by: Steven Sistare <steven.sist...@oracle.com>
---
 drivers/gpu/drm/drm_dp_mst_topology.c | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/drm_dp_mst_topology.c 
b/drivers/gpu/drm/drm_dp_mst_topology.c
index 70dcfa58d3c2..ec503d416062 100644
--- a/drivers/gpu/drm/drm_dp_mst_topology.c
+++ b/drivers/gpu/drm/drm_dp_mst_topology.c
@@ -1082,10 +1082,12 @@ static bool drm_dp_port_setup_pdt(struct 
drm_dp_mst_port *port)
                lct = drm_dp_calculate_rad(port, rad);
 
                port->mstb = drm_dp_add_mst_branch_device(lct, rad);
-               port->mstb->mgr = port->mgr;
-               port->mstb->port_parent = port;
+               if (port->mstb) {
+                       port->mstb->mgr = port->mgr;
+                       port->mstb->port_parent = port;
 
-               send_link = true;
+                       send_link = true;
+               }
                break;
        }
        return send_link;
-- 
2.15.0

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

Reply via email to