Mercurial > pidgin
comparison src/cipher.c @ 12388:4e045668b9d0
[gaim-migrate @ 14694]
Smashing the stack is neither fun nor profitable! Having room for the NUL terminator is a good idea.
committer: Tailor Script <tailor@pidgin.im>
author | Richard Laager <rlaager@wiktel.com> |
---|---|
date | Wed, 07 Dec 2005 10:38:52 +0000 |
parents | cfc808463763 |
children | e024601d45c7 |
comparison
equal
deleted
inserted
replaced
12387:1112a9ef2cc6 | 12388:4e045668b9d0 |
---|---|
1633 g_return_val_if_fail(digest_s, FALSE); | 1633 g_return_val_if_fail(digest_s, FALSE); |
1634 | 1634 |
1635 if(!gaim_cipher_context_digest(context, sizeof(digest), digest, &dlen)) | 1635 if(!gaim_cipher_context_digest(context, sizeof(digest), digest, &dlen)) |
1636 return FALSE; | 1636 return FALSE; |
1637 | 1637 |
1638 if(in_len < dlen * 2) | 1638 /* in_len must be greater than dlen * 2 so we have room for the NUL. */ |
1639 if(in_len <= dlen * 2) | |
1639 return FALSE; | 1640 return FALSE; |
1640 | 1641 |
1641 for(n = 0; n < dlen; n++) | 1642 for(n = 0; n < dlen; n++) |
1642 sprintf(digest_s + (n * 2), "%02x", digest[n]); | 1643 sprintf(digest_s + (n * 2), "%02x", digest[n]); |
1643 | 1644 |
1789 const gchar *nonce, | 1790 const gchar *nonce, |
1790 const gchar *client_nonce) | 1791 const gchar *client_nonce) |
1791 { | 1792 { |
1792 GaimCipher *cipher; | 1793 GaimCipher *cipher; |
1793 GaimCipherContext *context; | 1794 GaimCipherContext *context; |
1794 gchar hash[32]; /* We only support MD5. */ | 1795 gchar hash[33]; /* We only support MD5. */ |
1795 | 1796 |
1796 g_return_val_if_fail(username != NULL, NULL); | 1797 g_return_val_if_fail(username != NULL, NULL); |
1797 g_return_val_if_fail(realm != NULL, NULL); | 1798 g_return_val_if_fail(realm != NULL, NULL); |
1798 g_return_val_if_fail(password != NULL, NULL); | 1799 g_return_val_if_fail(password != NULL, NULL); |
1799 g_return_val_if_fail(nonce != NULL, NULL); | 1800 g_return_val_if_fail(nonce != NULL, NULL); |
1855 const gchar *client_nonce, | 1856 const gchar *client_nonce, |
1856 const gchar *session_key) | 1857 const gchar *session_key) |
1857 { | 1858 { |
1858 GaimCipher *cipher; | 1859 GaimCipher *cipher; |
1859 GaimCipherContext *context; | 1860 GaimCipherContext *context; |
1860 gchar hash2[32]; /* We only support MD5. */ | 1861 static gchar hash2[33]; /* We only support MD5. */ |
1861 | 1862 |
1862 g_return_val_if_fail(method != NULL, NULL); | 1863 g_return_val_if_fail(method != NULL, NULL); |
1863 g_return_val_if_fail(digest_uri != NULL, NULL); | 1864 g_return_val_if_fail(digest_uri != NULL, NULL); |
1864 g_return_val_if_fail(nonce != NULL, NULL); | 1865 g_return_val_if_fail(nonce != NULL, NULL); |
1865 g_return_val_if_fail(session_key != NULL, NULL); | 1866 g_return_val_if_fail(session_key != NULL, NULL); |