[Telepathy-commits] [telepathy-salut/master] caps_hash_compute: use g_checksum_type_get_length instead of hardcoding the size

Guillaume Desmottes guillaume.desmottes at collabora.co.uk
Thu Feb 26 11:20:27 PST 2009


---
 src/salut-caps-hash.c |   12 +++++++-----
 1 files changed, 7 insertions(+), 5 deletions(-)

diff --git a/src/salut-caps-hash.c b/src/salut-caps-hash.c
index efdacd3..26d83f6 100644
--- a/src/salut-caps-hash.c
+++ b/src/salut-caps-hash.c
@@ -138,8 +138,6 @@ salut_presence_free_xep0115_hash (
   g_ptr_array_free (dataforms, TRUE);
 }
 
-#define SHA1_HASH_SIZE 20
-
 static gchar *
 caps_hash_compute (
     GPtrArray *features,
@@ -148,11 +146,14 @@ caps_hash_compute (
 {
   GString *s;
   GChecksum *checksum;
-  guchar sha1[SHA1_HASH_SIZE];
-  gsize out_len = SHA1_HASH_SIZE;
+  guchar *sha1;
+  gsize out_len;
   guint i;
   gchar *encoded;
 
+  out_len = g_checksum_type_get_length (G_CHECKSUM_SHA1);
+  sha1 = g_malloc (out_len * sizeof (guchar));
+
   g_ptr_array_sort (identities, char_cmp);
   g_ptr_array_sort (features, char_cmp);
   g_ptr_array_sort (dataforms, dataforms_cmp);
@@ -207,7 +208,8 @@ caps_hash_compute (
   g_string_free (s, TRUE);
   g_checksum_free (checksum);
 
-  encoded = g_base64_encode (sha1, SHA1_HASH_SIZE);
+  encoded = g_base64_encode (sha1, out_len);
+  g_free (sha1);
 
   return encoded;
 }
-- 
1.5.6.5




More information about the telepathy-commits mailing list