Commit 8b6568da authored by Youness Alaoui's avatar Youness Alaoui

Clean discovery_add_local_host_candidate to avoid memleaks if an error occurs

parent 02fd911e
......@@ -289,8 +289,6 @@ NiceCandidate *discovery_add_local_host_candidate (
candidate = nice_candidate_new (NICE_CANDIDATE_TYPE_HOST);
if (candidate) {
NiceUDPSocket *udp_socket = g_slice_new0 (NiceUDPSocket);
if (udp_socket) {
candidate->stream_id = stream_id;
candidate->component_id = component_id;
candidate->addr = *address;
......@@ -308,12 +306,11 @@ NiceCandidate *discovery_add_local_host_candidate (
/* note: candidate username and password are left NULL as stream
level ufrag/password are used */
if (nice_udp_socket_factory_make (&agent->udp_socket_factory,
udp_socket, address)) {
udp_socket = nice_socket_new (agent->udp_socket_factory, address);
if (udp_socket) {
gboolean result;
priv_attach_stream_component_socket (agent, stream, component,
udp_socket);
priv_attach_stream_component_socket (agent, stream, component, udp_socket);
candidate->sockptr = udp_socket;
candidate->addr = udp_socket->addr;
......@@ -327,19 +324,17 @@ NiceCandidate *discovery_add_local_host_candidate (
/* success: store a pointer to the sockaddr */
component->sockets = modified_list;
agent_signal_new_candidate (agent, candidate);
}
else { /* error: list memory allocation */
} else { /* error: list memory allocation */
candidate = NULL; /* note: candidate already owned by component */
}
}
else /* error: memory allocation, or duplicate candidatet */
} else {
/* error: memory allocation, or duplicate candidates */
errors = TRUE;
}
else /* error: socket factory make */
} else {
/* error: socket new */
errors = TRUE;
}
else /* error: udp socket memory allocation */
errors = TRUE;
}
/* clean up after errors */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment