fix-nickcolor-memleak.diff
author Myhailo Danylenko <isbear@ukrpost.net>
Wed, 12 Nov 2014 23:04:36 +0200
changeset 87 78238d26911a
parent 76 3c8b784f92c7
permissions -rw-r--r--
Update series to current dev version * old changes * refresh patches * add update-uk-translation.diff * add fix-compilation-warning.diff * add fix-changelog-api.diff * temporarily deactivate timeformat patches * new experimental versions 42/43

# HG changeset patch
# Parent a70b6bce62ccc3866f844b7a5e4e6bb27309c11f
Fix memleak on replacing nickcolor rules

diff -r a70b6bce62cc -r 646da4f1d2e1 mcabber/mcabber/screen.c
--- a/mcabber/mcabber/screen.c	Fri Jan 18 11:23:51 2013 +0200
+++ b/mcabber/mcabber/screen.c	Mon Mar 11 21:45:20 2013 +0200
@@ -338,11 +338,15 @@
       g_free(mnick);
     } else {
       nickcolor *nc = g_new(nickcolor, 1);
+      nickcolor *oc;
       ensure_string_htable(&nickcolors, NULL);
       nc->manual = TRUE;
       nc->color = cl;
       // Free the struct, if any there already
-      g_free(g_hash_table_lookup(nickcolors, mnick));
+      if ((oc = g_hash_table_lookup(nickcolors, mnick))) {
+        g_free(oc -> color);
+        g_free(oc);
+      }
       // Save the new ones
       g_hash_table_replace(nickcolors, mnick, nc);
       g_hash_table_replace(nickcolors, snick, nc);