From b346c0cc2012d9d9a9be4da7782be95f916feb67 Mon Sep 17 00:00:00 2001 From: jkhsjdhjs Date: Sun, 13 May 2018 04:37:20 +0200 Subject: [PATCH] fix sending of server passwords starting with ":" or containing spaces --- src/irc/core/irc-servers.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/irc/core/irc-servers.c b/src/irc/core/irc-servers.c index 02d971dc..62259b11 100644 --- a/src/irc/core/irc-servers.c +++ b/src/irc/core/irc-servers.c @@ -224,7 +224,9 @@ static void server_init(IRC_SERVER_REC *server) if (conn->proxy != NULL && conn->proxy_password != NULL && *conn->proxy_password != '\0') { - cmd = g_strdup_printf("PASS %s", conn->proxy_password); + cmd = g_strdup_printf("PASS %s%s", + (conn->proxy_password[0] == ':' || strchr(conn->proxy_password, ' ')) ? ":" : "", + conn->proxy_password); irc_send_cmd_now(server, cmd); g_free(cmd); } @@ -244,7 +246,9 @@ static void server_init(IRC_SERVER_REC *server) if (conn->password != NULL && *conn->password != '\0') { /* send password */ - cmd = g_strdup_printf("PASS %s", conn->password); + cmd = g_strdup_printf("PASS %s%s", + (conn->password[0] == ':' || strchr(conn->password, ' ')) ? ":" : "", + conn->password); irc_send_cmd_now(server, cmd); g_free(cmd); }