Commit a647036c authored by Youness Alaoui's avatar Youness Alaoui

fix a possible crash if the address is invalid

parent 2dc51dd9
...@@ -1174,9 +1174,11 @@ static void _upnp_mapped_external_port (GUPnPSimpleIgd *self, gchar *proto, ...@@ -1174,9 +1174,11 @@ static void _upnp_mapped_external_port (GUPnPSimpleIgd *self, gchar *proto,
nice_debug ("Agent %p : Sucessfully mapped %s:%d to %s:%d", agent, local_ip, nice_debug ("Agent %p : Sucessfully mapped %s:%d to %s:%d", agent, local_ip,
local_port, external_ip, external_port); local_port, external_ip, external_port);
nice_address_set_from_string (&localaddr, local_ip); if (!nice_address_set_from_string (&localaddr, local_ip))
goto end;
nice_address_set_port (&localaddr, local_port); nice_address_set_port (&localaddr, local_port);
nice_address_set_from_string (&externaddr, external_ip); if (!nice_address_set_from_string (&externaddr, external_ip))
goto end;
nice_address_set_port (&externaddr, external_port); nice_address_set_port (&externaddr, external_port);
for (i = agent->upnp_mapping; i; i = i->next) { for (i = agent->upnp_mapping; i; i = i->next) {
...@@ -1234,7 +1236,7 @@ static void _upnp_error_mapping_port (GUPnPSimpleIgd *self, GError *error, ...@@ -1234,7 +1236,7 @@ static void _upnp_error_mapping_port (GUPnPSimpleIgd *self, GError *error,
nice_debug ("Agent %p : Error mapping %s:%d to %d (%d) : %s", agent, local_ip, nice_debug ("Agent %p : Error mapping %s:%d to %d (%d) : %s", agent, local_ip,
local_port, external_port, error->domain, error->message); local_port, external_port, error->domain, error->message);
nice_address_set_from_string (&localaddr, local_ip); if (nice_address_set_from_string (&localaddr, local_ip)) {
nice_address_set_port (&localaddr, local_port); nice_address_set_port (&localaddr, local_port);
for (i = agent->upnp_mapping; i; i = i->next) { for (i = agent->upnp_mapping; i; i = i->next) {
...@@ -1254,6 +1256,7 @@ static void _upnp_error_mapping_port (GUPnPSimpleIgd *self, GError *error, ...@@ -1254,6 +1256,7 @@ static void _upnp_error_mapping_port (GUPnPSimpleIgd *self, GError *error,
} }
agent_gathering_done (agent); agent_gathering_done (agent);
} }
}
g_static_rec_mutex_unlock (&agent->mutex); g_static_rec_mutex_unlock (&agent->mutex);
} }
......
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