From 2fed3bf6c4a71a645d107555e828b81db9a61f75 Mon Sep 17 00:00:00 2001 From: Martin Nordholts Date: Wed, 19 Apr 2023 16:59:01 +0200 Subject: [PATCH] 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: --- subprojects/gst-plugins-bad/gst-libs/gst/webrtc/nice/nice.c | 4 ++++ 1 file changed, 4 insertions(+) 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 ed9cb4d2e4..238269a8d9 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 @@ -759,6 +759,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; @@ -1361,6 +1363,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");