summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorColin Ian King <colin.king@canonical.com>2019-11-20 17:35:09 +0000
committerLyude Paul <lyude@redhat.com>2019-11-20 14:16:15 -0500
commit2c8bc91488fc57438c43b3bb19deb7fdbc1e5119 (patch)
tree63d1db10c3d933269b293cc8a60acaae1035cbc5
parent8896e40c05ccfc7f03d224888596a5f23a315af3 (diff)
downloadlinux-stable-2c8bc91488fc57438c43b3bb19deb7fdbc1e5119.tar.gz
linux-stable-2c8bc91488fc57438c43b3bb19deb7fdbc1e5119.tar.bz2
linux-stable-2c8bc91488fc57438c43b3bb19deb7fdbc1e5119.zip
drm/dp_mst: fix multiple frees of tx->bytes
Currently tx->bytes is being freed r->num_transactions number of times because tx is not being set correctly. Fix this by setting tx to &r->transactions[i] so that the correct objects are being freed on each loop iteration. Addresses-Coverity: ("Double free") Fixes: 2f015ec6eab6 ("drm/dp_mst: Add sideband down request tracing + selftests") Signed-off-by: Colin Ian King <colin.king@canonical.com> Signed-off-by: Lyude Paul <lyude@redhat.com> Link: https://patchwork.freedesktop.org/patch/msgid/20191120173509.347490-1-colin.king@canonical.com
-rw-r--r--drivers/gpu/drm/drm_dp_mst_topology.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/gpu/drm/drm_dp_mst_topology.c b/drivers/gpu/drm/drm_dp_mst_topology.c
index b854a422a523..1437bc46368b 100644
--- a/drivers/gpu/drm/drm_dp_mst_topology.c
+++ b/drivers/gpu/drm/drm_dp_mst_topology.c
@@ -504,8 +504,10 @@ drm_dp_decode_sideband_req(const struct drm_dp_sideband_msg_tx *raw,
}
if (failed) {
- for (i = 0; i < r->num_transactions; i++)
+ for (i = 0; i < r->num_transactions; i++) {
+ tx = &r->transactions[i];
kfree(tx->bytes);
+ }
return -ENOMEM;
}