diff options
author | Martin Nordholts <martn@axis.com> | 2023-04-19 16:59:01 +0200 |
---|---|---|
committer | Tim-Philipp Müller <tim@centricular.com> | 2023-04-25 11:02:31 +0100 |
commit | c4c79b7275137edf6463c94fb136f04ded35f98e (patch) | |
tree | cc284383cc8a1844f3de589d1cbe0ab69096d3d1 | |
parent | 5baeb1e808f8811d2538e92a1361c8f831d5c504 (diff) | |
download | gstreamer-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.c | 4 |
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"); |