summaryrefslogtreecommitdiff
path: root/agent
diff options
context:
space:
mode:
authorOlivier CrĂȘte <olivier.crete@collabora.com>2021-05-03 17:00:51 -0400
committerOlivier CrĂȘte <olivier.crete@collabora.com>2021-05-03 18:42:43 -0400
commit86a7499fff08b2ee5eb543a59f283dd50ce73103 (patch)
tree63fa438f6e57704f8c5d5687efa9fb37113d8b13 /agent
parent80c43a546bfe9b5223700a18a30349c16080bc03 (diff)
downloadlibnice-86a7499fff08b2ee5eb543a59f283dd50ce73103.tar.gz
conncheck: Free password in more obvious way
This should make Coverity's job a little easier. And also fix a little leak in the error path.
Diffstat (limited to 'agent')
-rw-r--r--agent/conncheck.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/agent/conncheck.c b/agent/conncheck.c
index 39ef78f..e03130a 100644
--- a/agent/conncheck.c
+++ b/agent/conncheck.c
@@ -2824,6 +2824,7 @@ int conn_check_send (NiceAgent *agent, CandidateCheckPair *pair)
NiceComponent *component;
gsize uname_len;
uint8_t *password = NULL;
+ uint8_t *free_password = NULL;
gsize password_len;
bool controlling = agent->controlling_mode;
/* XXX: add API to support different nomination modes: */
@@ -2843,7 +2844,8 @@ int conn_check_send (NiceAgent *agent, CandidateCheckPair *pair)
if (password != NULL &&
(agent->compatibility == NICE_COMPATIBILITY_MSN ||
agent->compatibility == NICE_COMPATIBILITY_OC2007)) {
- password = g_base64_decode ((gchar *) password, &password_len);
+ free_password = password =
+ g_base64_decode ((gchar *) password, &password_len);
}
if (nice_debug_is_enabled ()) {
@@ -2894,6 +2896,7 @@ int conn_check_send (NiceAgent *agent, CandidateCheckPair *pair)
if (uname_len == 0) {
nice_debug ("Agent %p: no credentials found, cancelling conncheck", agent);
+ g_free (free_password);
return -1;
}
@@ -2910,10 +2913,7 @@ int conn_check_send (NiceAgent *agent, CandidateCheckPair *pair)
nice_debug ("Agent %p: conncheck created %zd - %p", agent, buffer_len,
stun->message.buffer);
- if (agent->compatibility == NICE_COMPATIBILITY_MSN ||
- agent->compatibility == NICE_COMPATIBILITY_OC2007) {
- g_free (password);
- }
+ g_free (free_password);
if (buffer_len == 0) {
nice_debug ("Agent %p: buffer is empty, cancelling conncheck", agent);