a30e317
diff -Nur audacious-plugins-2.2-orig/src/alarm/alarm.c audacious-plugins-2.2/src/alarm/alarm.c
a30e317
--- audacious-plugins-2.2-orig/src/alarm/alarm.c	2009-11-22 23:49:52.000000000 +0100
a30e317
+++ audacious-plugins-2.2/src/alarm/alarm.c	2009-12-30 22:38:17.985756827 +0100
a30e317
@@ -321,14 +321,17 @@
a30e317
    if(!aud_cfg_db_get_int(conf, "alarm", "fading", &fading))
a30e317
      fading = DEFAULT_FADING;
a30e317
 
a30e317
+   g_free(cmdstr);
a30e317
    if(!aud_cfg_db_get_string(conf, "alarm", "cmdstr", &cmdstr))
a30e317
      cmdstr = g_strdup("");
a30e317
    if(!aud_cfg_db_get_bool(conf, "alarm", "cmd_on", &cmd_on))
a30e317
      cmd_on = FALSE;
a30e317
 
a30e317
+   g_free(playlist);
a30e317
    if(!aud_cfg_db_get_string(conf, "alarm", "playlist", &playlist))
a30e317
      playlist = g_strdup("");
a30e317
 
a30e317
+   g_free(alarm_conf.reminder_msg);
a30e317
    if(!aud_cfg_db_get_string(conf, "alarm", "reminder_msg", &alarm_conf.reminder_msg))
a30e317
      alarm_conf.reminder_msg = g_strdup("");
a30e317
    if(!aud_cfg_db_get_bool(conf, "alarm", "reminder_on", &alarm_conf.reminder_on))
a30e317
@@ -970,6 +973,7 @@
a30e317
 {
a30e317
    DEBUG("alarm_init\n");
a30e317
 
a30e317
+   alarm_conf.reminder_msg = NULL;
a30e317
    alarm_read_config();
a30e317
 
a30e317
    /* start the main thread running */
a30e317
@@ -989,6 +993,13 @@
a30e317
    if(stop_tid)
a30e317
      pthread_cancel(stop_tid);
a30e317
    stop_tid = 0;
a30e317
+
a30e317
+   g_free(alarm_conf.reminder_msg);
a30e317
+   alarm_conf.reminder_msg = NULL;
a30e317
+   g_free(playlist);
a30e317
+   playlist = NULL;
a30e317
+   g_free(cmdstr);
a30e317
+   cmdstr = NULL;
a30e317
 }
a30e317
 
a30e317
 static GeneralPlugin alarm_plugin =