OSDN Git Service

drm: NULL pointer dereference [null-pointer-deref] (CWE 476) problem
authorJoe Moriarty <joe.moriarty@oracle.com>
Mon, 12 Feb 2018 19:51:42 +0000 (14:51 -0500)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Mon, 19 Feb 2018 11:58:20 +0000 (12:58 +0100)
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.moriarty@oracle.com>
Reviewed-by: Steven Sistare <steven.sistare@oracle.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Link: https://patchwork.freedesktop.org/patch/msgid/20180212195144.98323-3-joe.moriarty@oracle.com
drivers/gpu/drm/drm_dp_mst_topology.c

index 36df7df..6fac412 100644 (file)
@@ -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;