diff options
author | Olivier CrĂȘte <olivier.crete@collabora.com> | 2021-05-03 17:00:51 -0400 |
---|---|---|
committer | Olivier CrĂȘte <olivier.crete@collabora.com> | 2021-05-03 18:42:43 -0400 |
commit | 86a7499fff08b2ee5eb543a59f283dd50ce73103 (patch) | |
tree | 63fa438f6e57704f8c5d5687efa9fb37113d8b13 /agent | |
parent | 80c43a546bfe9b5223700a18a30349c16080bc03 (diff) | |
download | libnice-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.c | 10 |
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); |