Mercurial > hg
changeset 2220:79e12dacbccd
Fix a 1-byte memory leak in caps_generate()
The caps value is correctly stolen and reinserted but the previous
hash key should be freed. This is a special key "" of 1 byte.
author | Mikael Berthe <mikael@lilotux.net> |
---|---|
date | Fri, 06 Nov 2015 13:43:15 +0100 |
parents | 3958793d0d03 |
children | 3f9988ec21e0 |
files | mcabber/mcabber/caps.c |
diffstat | 1 files changed, 7 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/mcabber/mcabber/caps.c Thu Nov 05 23:34:23 2015 +0100 +++ b/mcabber/mcabber/caps.c Fri Nov 06 13:43:15 2015 +0100 @@ -280,10 +280,15 @@ guint8 digest[20]; gsize digest_size = 20; gchar *hash, *old_hash = NULL; - caps *old_caps; - caps *c = g_hash_table_lookup(caps_cache, ""); + caps *old_caps, *c; + gpointer key; + + if (!g_hash_table_lookup_extended(caps_cache, "", &key, &c)) + return NULL; g_hash_table_steal(caps_cache, ""); + g_free(key); + sha1 = g_checksum_new(G_CHECKSUM_SHA1); langs = g_hash_table_get_keys(c->identities);