From 864d9d33a5bf7a828b46f1fe9f365d2093ab996d Mon Sep 17 00:00:00 2001 From: Mikael Berthe Date: Thu, 1 Oct 2015 22:44:29 +0200 Subject: [PATCH] Do not crash when using say_to . on a special buffer item This should fix issue #140. --- mcabber/mcabber/commands.c | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/mcabber/mcabber/commands.c b/mcabber/mcabber/commands.c index 9eef2ff..c21d344 100644 --- a/mcabber/mcabber/commands.c +++ b/mcabber/mcabber/commands.c @@ -1690,14 +1690,24 @@ static void do_say_to(char *arg) if (fjid[1] == '\0') { fjid = g_strdup(cjid); } else if (fjid[1] == JID_RESOURCE_SEPARATOR) { - char *res_utf8 = to_utf8(fjid+2); - fjid = g_strdup_printf("%s%c%s", cjid, JID_RESOURCE_SEPARATOR, res_utf8); - g_free(res_utf8); + if (!cjid) { + fjid = NULL; + } else { + char *res_utf8 = to_utf8(fjid+2); + fjid = g_strdup_printf("%s%c%s", cjid, JID_RESOURCE_SEPARATOR, res_utf8); + g_free(res_utf8); + } } else fjid = to_utf8(fjid); } else fjid = to_utf8(fjid); + if (!fjid) { + scr_LogPrint(LPRINT_NORMAL, "The Jabber ID is invalid."); + free_arg_lst(paramlst); + return; + } + if (!strchr(fjid, JID_DOMAIN_SEPARATOR)) { const gchar *append_server = settings_opt_get("default_server"); if (append_server) { -- 2.11.4.GIT