about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorJames Booth <boothj5@gmail.com>2014-06-18 21:36:09 +0100
committerJames Booth <boothj5@gmail.com>2014-06-18 21:36:09 +0100
commitd668d15081f3d38d618457cb9016100acc6877dc (patch)
treef15f1535cd42bd6c101dc1bbfeb97902219f98eb
parent7344d3b8987f6e2edb12a3861a07006e27fb80e5 (diff)
downloadprofani-tty-d668d15081f3d38d618457cb9016100acc6877dc.tar.gz
Free aliases on cmd_init
-rw-r--r--src/command/command.c1
-rw-r--r--src/config/preferences.c12
2 files changed, 9 insertions, 4 deletions
diff --git a/src/command/command.c b/src/command/command.c
index 6882109f..20e29795 100644
--- a/src/command/command.c
+++ b/src/command/command.c
@@ -971,6 +971,7 @@ cmd_init(void)
         g_string_free(ac_alias, TRUE);
         curr = g_list_next(curr);
     }
+    prefs_free_aliases(aliases);
 
     prefs_ac = autocomplete_new();
     autocomplete_add(prefs_ac, "ui");
diff --git a/src/config/preferences.c b/src/config/preferences.c
index 49203bfb..b187bc32 100644
--- a/src/config/preferences.c
+++ b/src/config/preferences.c
@@ -348,11 +348,15 @@ prefs_get_aliases(void)
             char *name = keys[i];
             char *value = g_key_file_get_string(prefs, PREF_GROUP_ALIAS, name, NULL);
 
-            ProfAlias *alias = malloc(sizeof(struct prof_alias_t));
-            alias->name = strdup(name);
-            alias->value = strdup(value);
+            if (value != NULL) {
+                ProfAlias *alias = malloc(sizeof(struct prof_alias_t));
+                alias->name = strdup(name);
+                alias->value = strdup(value);
 
-            result = g_list_insert_sorted(result, alias, (GCompareFunc)_alias_cmp);
+                free(value);
+
+                result = g_list_insert_sorted(result, alias, (GCompareFunc)_alias_cmp);
+            }
         }
 
         g_strfreev(keys);