[Xfce4-commits] <xfce4-xkb-plugin:master> Make sure we don't leak in weird situations.

Jérôme Guelfucci noreply at xfce.org
Fri Apr 29 11:38:03 CEST 2011


Updating branch refs/heads/master
         to 34f4f9a83f0a485f61f3cfa7f1790e0d399e3f49 (commit)
       from 6a25b3b1581fa62352f7bd5a0f79b121f8aecfa3 (commit)

commit 34f4f9a83f0a485f61f3cfa7f1790e0d399e3f49
Author: Jérôme Guelfucci <jeromeg at xfce.org>
Date:   Fri Apr 29 10:40:46 2011 +0200

    Make sure we don't leak in weird situations.

 panel-plugin/xkb-config.c |    7 ++++++-
 1 files changed, 6 insertions(+), 1 deletions(-)

diff --git a/panel-plugin/xkb-config.c b/panel-plugin/xkb-config.c
index 0f0f2ca..f2f2e80 100644
--- a/panel-plugin/xkb-config.c
+++ b/panel-plugin/xkb-config.c
@@ -298,9 +298,14 @@ xkb_config_update_settings (t_xkb_settings *settings)
     if (settings->kbd_config == NULL || settings->never_modify_config)
     {
         xkl_config_rec_get_from_server (config->config_rec, config->engine);
-        settings->kbd_config = g_new0 (t_xkb_kbd_config, 1);
+        if (settings->kbd_config == NULL)
+            settings->kbd_config = g_new0 (t_xkb_kbd_config, 1);
+
+        g_free (settings->kbd_config->model);
         settings->kbd_config->model = g_strdup (config->config_rec->model);
+        g_free (settings->kbd_config->layouts);
         settings->kbd_config->layouts = g_strjoinv (",", config->config_rec->layouts);
+        g_free (settings->kbd_config->variants);
         settings->kbd_config->variants = g_strjoinv (",", config->config_rec->variants);
     }
     else



More information about the Xfce4-commits mailing list