diff options
author | Fabrice Bellet <fabrice@bellet.info> | 2020-12-13 17:59:41 +0100 |
---|---|---|
committer | Olivier CrĂȘte <olivier.crete@ocrete.ca> | 2021-04-20 19:37:08 +0000 |
commit | 3e3a2b62ea811b94ed930c48ad9851fa60b04ba6 (patch) | |
tree | 2f0b778c88bebbd5f94159a18ef923a3d66352be | |
parent | bbf7f2d7beb24c7d620e62c2030701e6961a29d4 (diff) | |
download | libnice-3e3a2b62ea811b94ed930c48ad9851fa60b04ba6.tar.gz |
agent: avoid leak of turn refreshes
We keep refreshes having the discarding flag set. They may be freed later
if the agent main context remains alive after agent deletion.
-rw-r--r-- | agent/agent.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/agent/agent.c b/agent/agent.c index c15f835..8d2349a 100644 --- a/agent/agent.c +++ b/agent/agent.c @@ -5629,6 +5629,15 @@ nice_agent_dispose (GObject *object) "using nice_agent_close_async() to prune them before releasing the " "agent.", agent); + for (i = agent->refresh_list; i;) { + GSList *next = i->next; + CandidateRefresh *refresh = i->data; + + if (!refresh->disposing) + refresh_free (agent, refresh); + i = next; + } + g_free (agent->stun_server_ip); agent->stun_server_ip = NULL; |