From 53ef20927268b777c4845984593bc32a066a1e68 Mon Sep 17 00:00:00 2001 From: Michael Vetter Date: Wed, 5 Jun 2019 14:19:41 +0200 Subject: [PATCH 1/2] Check if valid account before setting autoconnect Fixes https://github.com/profanity-im/profanity/issues/1112 --- src/command/cmd_funcs.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/command/cmd_funcs.c b/src/command/cmd_funcs.c index 999afd10..d44f9d68 100644 --- a/src/command/cmd_funcs.c +++ b/src/command/cmd_funcs.c @@ -6555,12 +6555,16 @@ cmd_autoconnect(ProfWin *window, const char *const command, gchar **args) prefs_set_string(PREF_CONNECT_ACCOUNT, NULL); cons_show("Autoconnect account disabled."); } else if (strcmp(args[0], "set") == 0) { - prefs_set_string(PREF_CONNECT_ACCOUNT, args[1]); - cons_show("Autoconnect account set to: %s.", args[1]); + if (accounts_account_exists(args[1])) { + prefs_set_string(PREF_CONNECT_ACCOUNT, args[1]); + cons_show("Autoconnect account set to: %s.", args[1]); + } else { + cons_show_error("Account '%s' does not exist.", args[1]); + } } else { cons_bad_cmd_usage(command); } - return true; + return TRUE; } gboolean From 4e972f8aef4a514928e7ffd56e8d31c7bef37b13 Mon Sep 17 00:00:00 2001 From: Michael Vetter Date: Wed, 5 Jun 2019 14:41:09 +0200 Subject: [PATCH 2/2] Check for sane argument in autoconnect set Check that user doesnt do `/autoconnect set `. Which would result in: `Account '(null)' does not exist`. --- src/command/cmd_funcs.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/command/cmd_funcs.c b/src/command/cmd_funcs.c index d44f9d68..f2c9aa1d 100644 --- a/src/command/cmd_funcs.c +++ b/src/command/cmd_funcs.c @@ -6555,11 +6555,15 @@ cmd_autoconnect(ProfWin *window, const char *const command, gchar **args) prefs_set_string(PREF_CONNECT_ACCOUNT, NULL); cons_show("Autoconnect account disabled."); } else if (strcmp(args[0], "set") == 0) { - if (accounts_account_exists(args[1])) { - prefs_set_string(PREF_CONNECT_ACCOUNT, args[1]); - cons_show("Autoconnect account set to: %s.", args[1]); + if (args[1] == NULL || strlen(args[1]) == 0) { + cons_bad_cmd_usage(command); } else { - cons_show_error("Account '%s' does not exist.", args[1]); + if (accounts_account_exists(args[1])) { + prefs_set_string(PREF_CONNECT_ACCOUNT, args[1]); + cons_show("Autoconnect account set to: %s.", args[1]); + } else { + cons_show_error("Account '%s' does not exist.", args[1]); + } } } else { cons_bad_cmd_usage(command);