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)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 24 Apr 2020 05:59:07 +0000 (07:59 +0200)
commit 22a07038c0eaf4d1315a493ce66dcd255accba19 upstream.

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
Signed-off-by: Lee Jones <lee.jones@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/gpu/drm/drm_dp_mst_topology.c

index 8dbcb498d56c36e58f6fcf99105092913a8c8b29..41e67e983a7f563f46188ee5f295f3d1c3b37228 100644 (file)
@@ -1041,10 +1041,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;