fix-nickcolor-memleak.diff
author Myhailo Danylenko <isbear@ukrpost.net>
Wed, 15 May 2013 13:07:05 +0300
changeset 85 93c3cc0d7891
parent 76 3c8b784f92c7
permissions -rw-r--r--
[refresh] Add round-high-priority.diff, refresh => API 41-42 * add round-high-priority.diff * refresh patches according to changes in upstream * API version bump - 41-42

# 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);