diff --git a/agent/agent.c b/agent/agent.c index ac8a2c95b3a98a9795f8e8b3a4bfd48225773821..a69abfedfece660e13acc1d2a388b2b43128344c 100644 --- a/agent/agent.c +++ b/agent/agent.c @@ -1574,7 +1574,8 @@ static gboolean priv_add_remote_candidate ( candidate->base_addr = *base_addr; candidate->priority = priority; if (foundation) - strncpy(candidate->foundation, foundation, NICE_CANDIDATE_MAX_FOUNDATION); + g_strlcpy(candidate->foundation, foundation, + NICE_CANDIDATE_MAX_FOUNDATION); /* note: username and password must remain the same during * a session; see sect 9.1.2 in ICE ID-19 */ @@ -1620,17 +1621,18 @@ static gboolean priv_add_remote_candidate ( addr? nice_address_get_port (addr) : 0, stream_id, component_id, username, password, priority); } - + if (base_addr) candidate->base_addr = *base_addr; - + candidate->transport = transport; candidate->priority = priority; candidate->username = g_strdup (username); candidate->password = g_strdup (password); - + if (foundation) - g_strlcpy (candidate->foundation, foundation, NICE_CANDIDATE_MAX_FOUNDATION); + g_strlcpy (candidate->foundation, foundation, + NICE_CANDIDATE_MAX_FOUNDATION); if (conn_check_add_for_candidate (agent, stream_id, component, candidate) < 0) error_flag = TRUE; diff --git a/agent/discovery.c b/agent/discovery.c index c339095e71d6e73dea848857de80c5ff6b615d3f..d19ffb6ab875bd77bca9abfca0ed43fe18fe5106 100644 --- a/agent/discovery.c +++ b/agent/discovery.c @@ -330,7 +330,8 @@ static void priv_assign_foundation (NiceAgent *agent, NiceCandidate *candidate) * time is supported, so there is no need to check * for candidates that would otherwise share the * foundation, but have different STUN/TURN servers */ - memcpy (candidate->foundation, n->foundation, NICE_CANDIDATE_MAX_FOUNDATION); + g_strlcpy (candidate->foundation, n->foundation, + NICE_CANDIDATE_MAX_FOUNDATION); if (n->username) { g_free (candidate->username); candidate->username = g_strdup (n->username); @@ -345,7 +346,8 @@ static void priv_assign_foundation (NiceAgent *agent, NiceCandidate *candidate) } } - g_snprintf (candidate->foundation, NICE_CANDIDATE_MAX_FOUNDATION, "%u", agent->next_candidate_id++); + g_snprintf (candidate->foundation, NICE_CANDIDATE_MAX_FOUNDATION, + "%u", agent->next_candidate_id++); } static void priv_assign_remote_foundation (NiceAgent *agent, NiceCandidate *candidate) @@ -380,7 +382,8 @@ static void priv_assign_remote_foundation (NiceAgent *agent, NiceCandidate *cand * time is supported, so there is no need to check * for candidates that would otherwise share the * foundation, but have different STUN/TURN servers */ - memcpy (candidate->foundation, n->foundation, NICE_CANDIDATE_MAX_FOUNDATION); + g_strlcpy (candidate->foundation, n->foundation, + NICE_CANDIDATE_MAX_FOUNDATION); if (n->username) { g_free (candidate->username); candidate->username = g_strdup (n->username);