summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjsg <jsg@openbsd.org>2017-08-14 02:10:24 +0000
committerjsg <jsg@openbsd.org>2017-08-14 02:10:24 +0000
commit8bee3b23fbdfeab4d6ced00079de2af2adaeccde (patch)
treeba5f2f98d5e38a62f23c28bfd994f63a0131e6de
parentdrm/mst: Fix error handling during MST sideband message reception (diff)
downloadwireguard-openbsd-8bee3b23fbdfeab4d6ced00079de2af2adaeccde.tar.xz
wireguard-openbsd-8bee3b23fbdfeab4d6ced00079de2af2adaeccde.zip
drm/mst: Avoid dereferencing a NULL mstb in drm_dp_mst_handle_up_req()
From Imre Deak 3d26e2ed7c8b4b1a0d9406fef7f3b5d6309fba49 in linux-4.4.y/4.4.79 7f8b3987da54cb4d41ad2545cd4d7958b9a36bdf in mainline linux ok kettenis@
-rw-r--r--sys/dev/pci/drm/drm_dp_mst_topology.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/sys/dev/pci/drm/drm_dp_mst_topology.c b/sys/dev/pci/drm/drm_dp_mst_topology.c
index 07e7cbbd622..2b09474a9d1 100644
--- a/sys/dev/pci/drm/drm_dp_mst_topology.c
+++ b/sys/dev/pci/drm/drm_dp_mst_topology.c
@@ -2327,7 +2327,9 @@ static int drm_dp_mst_handle_up_req(struct drm_dp_mst_topology_mgr *mgr)
DRM_DEBUG_KMS("Got RSN: pn: %d avail_pbn %d\n", msg.u.resource_stat.port_number, msg.u.resource_stat.available_pbn);
}
- drm_dp_put_mst_branch_device(mstb);
+ if (mstb)
+ drm_dp_put_mst_branch_device(mstb);
+
memset(&mgr->up_req_recv, 0, sizeof(struct drm_dp_sideband_msg_rx));
}
return ret;