/pidgin/main: 4eeb75c4ed61: Fix purple_hash_digest_to_str return...
Tomasz Wasilczyk <[email protected]>
| Newsgroups | gmane.comp.gnome.gaim.cvs |
|---|---|
| Message-ID | <[email protected]> |
Changeset: 4eeb75c4ed61449443453158901339811c6fa0d0 Author: Tomasz Wasilczyk <[email protected]> Date: 2014-05-19 09:31 +0200 Branch: default URL: https://hg.pidgin.im/pidgin/main/rev/4eeb75c4ed61 Description: Fix purple_hash_digest_to_str returned types diffstat: libpurple/protocols/msn/notification.c | 6 +++--- libpurple/util.c | 26 ++++++++++++++++++-------- 2 files changed, 21 insertions(+), 11 deletions(-) diffs (102 lines): diff --git a/libpurple/protocols/msn/notification.c b/libpurple/protocols/msn/notification.c --- a/libpurple/protocols/msn/notification.c +++ b/libpurple/protocols/msn/notification.c @@ -1400,7 +1400,7 @@ url_cmd(MsnCmdProc *cmdproc, MsnCommand PurpleHash *hash; gchar creds[33]; char *buf; - gssize diglen; + gboolean digest_ok; gulong tmp_timestamp; @@ -1421,11 +1421,11 @@ url_cmd(MsnCmdProc *cmdproc, MsnCommand hash = purple_md5_hash_new(); purple_hash_append(hash, (const guchar *)buf, strlen(buf)); - diglen = purple_hash_digest_to_str(hash, creds, sizeof(creds)); + digest_ok = purple_hash_digest_to_str(hash, creds, sizeof(creds)); g_object_unref(hash); g_free(buf); - g_return_if_fail(diglen > 0); + g_return_if_fail(digest_ok); g_free(session->passport_info.mail_url); session->passport_info.mail_url = diff --git a/libpurple/util.c b/libpurple/util.c --- a/libpurple/util.c +++ b/libpurple/util.c @@ -4819,7 +4819,7 @@ gchar *purple_http_digest_calculate_sess { PurpleHash *hasher; gchar hash[33]; /* We only support MD5. */ - gssize digest_len; + gboolean digest_ok; g_return_val_if_fail(username != NULL, NULL); g_return_val_if_fail(realm != NULL, NULL); @@ -4862,10 +4862,10 @@ gchar *purple_http_digest_calculate_sess purple_hash_append(hasher, (guchar *)client_nonce, strlen(client_nonce)); } - digest_len = purple_hash_digest_to_str(hasher, hash, sizeof(hash)); + digest_ok = purple_hash_digest_to_str(hasher, hash, sizeof(hash)); g_object_unref(hasher); - g_return_val_if_fail(digest_len > 0, NULL); + g_return_val_if_fail(digest_ok, NULL); return g_strdup(hash); } @@ -4883,7 +4883,7 @@ gchar *purple_http_digest_calculate_resp { PurpleHash *hash; static gchar hash2[33]; /* We only support MD5. */ - gssize hash_len; + gboolean digest_ok; g_return_val_if_fail(method != NULL, NULL); g_return_val_if_fail(digest_uri != NULL, NULL); @@ -4923,16 +4923,26 @@ gchar *purple_http_digest_calculate_resp hash2 = purple_md5_hash_new(); purple_hash_append(hash2, (guchar *)entity, strlen(entity)); - purple_hash_digest_to_str(hash2, entity_hash, sizeof(entity_hash)); + digest_ok = purple_hash_digest_to_str(hash2, entity_hash, sizeof(entity_hash)); g_object_unref(hash2); + if (!digest_ok) { + g_object_unref(hash); + g_return_val_if_reached(NULL); + } + purple_hash_append(hash, (guchar *)":", 1); purple_hash_append(hash, (guchar *)entity_hash, strlen(entity_hash)); } - purple_hash_digest_to_str(hash, hash2, sizeof(hash2)); + digest_ok = purple_hash_digest_to_str(hash, hash2, sizeof(hash2)); purple_hash_reset(hash); + if (!digest_ok) { + g_object_unref(hash); + g_return_val_if_reached(NULL); + } + purple_hash_append(hash, (guchar *)session_key, strlen(session_key)); purple_hash_append(hash, (guchar *)":", 1); purple_hash_append(hash, (guchar *)nonce, strlen(nonce)); @@ -4965,10 +4975,10 @@ gchar *purple_http_digest_calculate_resp } purple_hash_append(hash, (guchar *)hash2, strlen(hash2)); - hash_len = purple_hash_digest_to_str(hash, hash2, sizeof(hash2)); + digest_ok = purple_hash_digest_to_str(hash, hash2, sizeof(hash2)); g_object_unref(hash); - g_return_val_if_fail(hash_len > 0, NULL); + g_return_val_if_fail(digest_ok, NULL); return g_strdup(hash2); }