[Xfce4-commits] <xfce4-mount-plugin:master> Sanitize configuration values handling.

Landry Breuil noreply at xfce.org
Thu Apr 12 12:12:03 CEST 2012


Updating branch refs/heads/master
         to a8c711350db558b5250fc046bce814ec3bfc612a (commit)
       from a281a4309eaa8e48fa26cae1f125691452f61478 (commit)

commit a8c711350db558b5250fc046bce814ec3bfc612a
Author: Landry Breuil <landry at xfce.org>
Date:   Thu Apr 12 12:08:15 2012 +0200

    Sanitize configuration values handling.
    
    Set default values in create_mounter_control() instead of
    saving/overwriting/restoring them in mounter_refresh()/mounter_data_new(),
    which is called upon every click on the plugin.
    While here provide a default for on_mount_cmd and set it like others
    in mounter_apply_options() (removes a possible double-free)

 panel-plugin/mount-plugin.c |   68 +++++++++----------------------------------
 1 files changed, 14 insertions(+), 54 deletions(-)

diff --git a/panel-plugin/mount-plugin.c b/panel-plugin/mount-plugin.c
index a5f99f0..ac725a0 100644
--- a/panel-plugin/mount-plugin.c
+++ b/panel-plugin/mount-plugin.c
@@ -315,24 +315,6 @@ mounter_data_new (t_mounter *mt)
 
     disk_display_set_sizes(disk_displays);
 
-    mt->icon = PACKAGE_DATA_DIR"/icons/hicolor/scalable/apps/xfce-mount.svg";
-    mt->mount_command = DEFAULT_MOUNT_COMMAND;
-    mt->umount_command = DEFAULT_UMOUNT_COMMAND;
-
-    mt->excluded_filesystems = "";
-
-    mt->message_dialog = FALSE;
-
-    mt->include_NFSs = FALSE;
-
-    mt->exclude_FSs = FALSE;
-
-    mt->eject_drives = FALSE;
-
-    mt->exclude_devicenames = FALSE;
-
-    mt->use_sudo = FALSE;
-
     TRACE ("leaves mounter_data_new");
 
     return ;
@@ -342,38 +324,12 @@ mounter_data_new (t_mounter *mt)
 static void
 mounter_refresh (t_mounter * mt)
 {
-    gchar *mount, *umount, *icon, *excl_filesystems;
-    gboolean msg_dlg, incl_NFSs, excl_FSs, excl_DNs, use_sudo, eject;
     TRACE ("enters mounter_refresh");
 
     mounter_data_free (mt);
-    mount = g_strdup (mt->mount_command);
-    umount = g_strdup (mt->umount_command);
-    icon = g_strdup (mt->icon);
-    excl_filesystems = g_strdup (mt->excluded_filesystems);
-    DBG ("Changed icon value from '%s' to '%s'.", mt->icon, icon);
-    msg_dlg = mt->message_dialog;
-    incl_NFSs = mt->include_NFSs;
-    excl_FSs = mt->exclude_FSs;
-    excl_DNs = mt->exclude_devicenames;
-    use_sudo = mt->use_sudo;
-    eject = mt->eject_drives;
-
     mounter_data_new (mt);
-    mt->icon = g_strdup (icon);
-    DBG ("Changed icon value from '%s' to '%s'.", icon, mt->icon);
-    mt->mount_command = g_strdup (mount);
-    mt->umount_command = g_strdup (umount);
-    mt->excluded_filesystems = g_strdup (excl_filesystems);
-    mt->message_dialog = msg_dlg;
-    mt->include_NFSs = incl_NFSs;
-    mt->exclude_FSs = excl_FSs;
-    mt->exclude_devicenames = excl_DNs;
-    mt->use_sudo = use_sudo;
-    mt->eject_drives = eject;
 
     TRACE ("leaves mounter_refresh");
-
 }
 
 
@@ -521,10 +477,18 @@ create_mounter_control (XfcePanelPlugin *plugin)
 
     mounter = g_new0(t_mounter,1);
 
-    /* default mount command */
-    mounter->on_mount_cmd = NULL;
-
-    mounter->icon = NULL;
+    /* default configuration values for when no configuration is found */
+    mounter->icon = PACKAGE_DATA_DIR"/icons/hicolor/scalable/apps/xfce-mount.svg";
+    mounter->mount_command = DEFAULT_MOUNT_COMMAND;
+    mounter->umount_command = DEFAULT_UMOUNT_COMMAND;
+    mounter->on_mount_cmd = "";
+    mounter->excluded_filesystems = "";
+    mounter->message_dialog = FALSE;
+    mounter->include_NFSs = FALSE;
+    mounter->exclude_FSs = FALSE;
+    mounter->eject_drives = FALSE;
+    mounter->exclude_devicenames = FALSE;
+    mounter->use_sudo = FALSE;
 
     mounter->plugin = plugin;
 
@@ -574,16 +538,12 @@ mounter_apply_options (t_mounter_dialog *md)
     t_mounter * mt = md->mt;
     TRACE ("enters mounter_apply_options");
 
-    tmp = gtk_entry_get_text (GTK_ENTRY(md->string_cmd));
 
     incl_NFSs = mt->include_NFSs;
     excl_FSs = mt->exclude_FSs;
 
-    g_free (mt->on_mount_cmd);
-    if (tmp && *tmp)
-        mt->on_mount_cmd = g_strdup (tmp);
-    else
-        mt->on_mount_cmd = NULL;
+    mt->on_mount_cmd = g_strdup ( tmp = gtk_entry_get_text
+                          (GTK_ENTRY(md->string_cmd)) );
 
     if ( gtk_toggle_button_get_active
             (GTK_TOGGLE_BUTTON(md->specify_commands)) ) {


More information about the Xfce4-commits mailing list