summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Nordholts <martn@axis.com>2023-04-19 16:59:01 +0200
committerTim-Philipp Müller <tim@centricular.com>2023-04-25 11:02:31 +0100
commitc4c79b7275137edf6463c94fb136f04ded35f98e (patch)
treecc284383cc8a1844f3de589d1cbe0ab69096d3d1
parent5baeb1e808f8811d2538e92a1361c8f831d5c504 (diff)
downloadgstreamer-c4c79b7275137edf6463c94fb136f04ded35f98e.tar.gz
webrtc: Plug leaks of resolved ICE addresses
The addresses we get from `resolve_host_finish()` (via `resolve_host_async()`, `resolve_host_main_cb()`, `on_resolve_host()`, `g_resolver_lookup_by_name_finish()`) must be freed. Otherwise we leak memory. Leak found and confirmed fixed with GCC AddressSanitizer. Change-Id: If32d24452d626234f01b253b77a7d6d16eac1cee Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4482>
-rw-r--r--subprojects/gst-plugins-bad/gst-libs/gst/webrtc/nice/nice.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/subprojects/gst-plugins-bad/gst-libs/gst/webrtc/nice/nice.c b/subprojects/gst-plugins-bad/gst-libs/gst/webrtc/nice/nice.c
index d7feae1949..f62eb91b72 100644
--- a/subprojects/gst-plugins-bad/gst-libs/gst/webrtc/nice/nice.c
+++ b/subprojects/gst-plugins-bad/gst-libs/gst/webrtc/nice/nice.c
@@ -750,6 +750,8 @@ on_candidate_resolved (GstWebRTCICE * ice, GAsyncResult * res,
}
new_addr = g_inet_address_to_string (addresses->data);
+ g_resolver_free_addresses (addresses);
+ addresses = NULL;
new_candv[0] = rc->prefix;
new_candv[1] = new_addr;
@@ -1317,6 +1319,8 @@ on_http_proxy_resolved (GstWebRTCICE * ice, GAsyncResult * res,
/* XXX: only the first IP is used */
ip = g_inet_address_to_string (addresses->data);
+ g_resolver_free_addresses (addresses);
+ addresses = NULL;
if (!ip) {
GST_ERROR_OBJECT (ice, "failed to resolve host for proxy");