]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
drm/mst: Fix possible NULL pointer dereference in drm_dp_mst_process_up_req()
authorJosé Roberto de Souza <jose.souza@intel.com>
Wed, 29 Jan 2020 23:24:48 +0000 (15:24 -0800)
committerLyude Paul <lyude@redhat.com>
Thu, 30 Jan 2020 21:56:50 +0000 (16:56 -0500)
According to DP specification, DP_SINK_EVENT_NOTIFY is also a
broadcast message but as this function only handles
DP_CONNECTION_STATUS_NOTIFY I will only make the static
analyzer that caught this issue happy by not calling
drm_dp_get_mst_branch_device_by_guid() with a NULL guid, causing
drm_dp_mst_process_up_req() to return in the "if (!mstb)" right
bellow.

Fixes: 9408cc94eb04 ("drm/dp_mst: Handle UP requests asynchronously")
Cc: Lyude Paul <lyude@redhat.com>
Cc: Sean Paul <sean@poorly.run>
Cc: <stable@vger.kernel.org> # v5.5+
Signed-off-by: José Roberto de Souza <jose.souza@intel.com>
[added cc to stable]
Signed-off-by: Lyude Paul <lyude@redhat.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20200129232448.84704-1-jose.souza@intel.com
drivers/gpu/drm/drm_dp_mst_topology.c

index e6afe4faeca6d02b194a320d5b67af61d8cb6529..105bb5f401666834571eba65a5b22b00026f59c8 100644 (file)
@@ -3760,7 +3760,8 @@ drm_dp_mst_process_up_req(struct drm_dp_mst_topology_mgr *mgr,
                else if (msg->req_type == DP_RESOURCE_STATUS_NOTIFY)
                        guid = msg->u.resource_stat.guid;
 
-               mstb = drm_dp_get_mst_branch_device_by_guid(mgr, guid);
+               if (guid)
+                       mstb = drm_dp_get_mst_branch_device_by_guid(mgr, guid);
        } else {
                mstb = drm_dp_get_mst_branch_device(mgr, hdr->lct, hdr->rad);
        }