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 ( ...@@ -289,8 +289,6 @@ NiceCandidate *discovery_add_local_host_candidate (
candidate = nice_candidate_new (NICE_CANDIDATE_TYPE_HOST); candidate = nice_candidate_new (NICE_CANDIDATE_TYPE_HOST);
if (candidate) { if (candidate) {
NiceUDPSocket *udp_socket = g_slice_new0 (NiceUDPSocket);
if (udp_socket) {
candidate->stream_id = stream_id; candidate->stream_id = stream_id;
candidate->component_id = component_id; candidate->component_id = component_id;
candidate->addr = *address; candidate->addr = *address;
...@@ -308,12 +306,11 @@ NiceCandidate *discovery_add_local_host_candidate ( ...@@ -308,12 +306,11 @@ NiceCandidate *discovery_add_local_host_candidate (
/* note: candidate username and password are left NULL as stream /* note: candidate username and password are left NULL as stream
level ufrag/password are used */ level ufrag/password are used */
if (nice_udp_socket_factory_make (&agent->udp_socket_factory, udp_socket = nice_socket_new (agent->udp_socket_factory, address);
udp_socket, address)) { if (udp_socket) {
gboolean result; gboolean result;
priv_attach_stream_component_socket (agent, stream, component, priv_attach_stream_component_socket (agent, stream, component, udp_socket);
udp_socket);
candidate->sockptr = udp_socket; candidate->sockptr = udp_socket;
candidate->addr = udp_socket->addr; candidate->addr = udp_socket->addr;
...@@ -327,19 +324,17 @@ NiceCandidate *discovery_add_local_host_candidate ( ...@@ -327,19 +324,17 @@ NiceCandidate *discovery_add_local_host_candidate (
/* success: store a pointer to the sockaddr */ /* success: store a pointer to the sockaddr */
component->sockets = modified_list; component->sockets = modified_list;
agent_signal_new_candidate (agent, candidate); agent_signal_new_candidate (agent, candidate);
} } else { /* error: list memory allocation */
else { /* error: list memory allocation */
candidate = NULL; /* note: candidate already owned by component */ candidate = NULL; /* note: candidate already owned by component */
} }
} } else {
else /* error: memory allocation, or duplicate candidatet */ /* error: memory allocation, or duplicate candidates */
errors = TRUE; errors = TRUE;
} }
else /* error: socket factory make */ } else {
/* error: socket new */
errors = TRUE; errors = TRUE;
} }
else /* error: udp socket memory allocation */
errors = TRUE;
} }
/* clean up after errors */ /* 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