From 6c1fef522a6bd74033ddf8497e9cd305026b0a56 Mon Sep 17 00:00:00 2001 From: James Booth Date: Wed, 27 Jul 2016 21:32:44 +0100 Subject: [PATCH 1/3] Use g_strndup in c_api.c --- src/plugins/c_api.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/plugins/c_api.c b/src/plugins/c_api.c index 042010db..26cb0c00 100644 --- a/src/plugins/c_api.c +++ b/src/plugins/c_api.c @@ -365,9 +365,9 @@ static char * _c_plugin_name(const char *filename) { GString *plugin_name_str = g_string_new(""); - char *name = strndup(filename, strlen(filename)-1); + gchar *name = g_strndup(filename, strlen(filename)-1); g_string_append(plugin_name_str, name); - free(name); + g_free(name); g_string_append(plugin_name_str, "so"); char *result = plugin_name_str->str; g_string_free(plugin_name_str, FALSE); From a1f48f8457436fe6d331469e40cff20a74c3b13b Mon Sep 17 00:00:00 2001 From: James Booth Date: Wed, 27 Jul 2016 22:07:11 +0100 Subject: [PATCH 2/3] Copy curr_status and free original in session.c --- src/xmpp/session.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/xmpp/session.c b/src/xmpp/session.c index 139d2fdb..0478fec3 100644 --- a/src/xmpp/session.c +++ b/src/xmpp/session.c @@ -397,7 +397,7 @@ session_check_autoaway(void) if (saved_status) { free(saved_status); } - saved_status = curr_status; + saved_status = strdup(curr_status); // send away presence with last activity char *message = prefs_get_string(PREF_AUTOAWAY_MESSAGE); @@ -481,6 +481,7 @@ session_check_autoaway(void) break; } + free(curr_status); prefs_free_string(mode); } From 3396e75d23cc634304b632464958eb1d1e1c2490 Mon Sep 17 00:00:00 2001 From: James Booth Date: Wed, 27 Jul 2016 23:35:49 +0100 Subject: [PATCH 3/3] Handle NULL saved_status --- src/xmpp/session.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/xmpp/session.c b/src/xmpp/session.c index 0478fec3..95930802 100644 --- a/src/xmpp/session.c +++ b/src/xmpp/session.c @@ -397,7 +397,11 @@ session_check_autoaway(void) if (saved_status) { free(saved_status); } - saved_status = strdup(curr_status); + if (curr_status) { + saved_status = strdup(curr_status); + } else { + saved_status = NULL; + } // send away presence with last activity char *message = prefs_get_string(PREF_AUTOAWAY_MESSAGE);