From 9ccdc5aff690ece41dae365505a1d09c5a897b43 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Helleu?= Date: Wed, 5 Apr 2023 23:52:55 +0200 Subject: [PATCH] irc: check that IRC URL starts with "irc" (issue #1903) --- src/plugins/irc/irc-server.c | 3 +++ tests/unit/plugins/irc/test-irc-server.cpp | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/plugins/irc/irc-server.c b/src/plugins/irc/irc-server.c index 25f2077e3..ee248dec1 100644 --- a/src/plugins/irc/irc-server.c +++ b/src/plugins/irc/irc-server.c @@ -1726,6 +1726,9 @@ irc_server_alloc_with_url (const char *irc_url) if (!irc_url || !irc_url[0]) return NULL; + if (weechat_strncasecmp (irc_url, "irc", 3) != 0) + return NULL; + irc_url2 = strdup (irc_url); if (!irc_url2) return NULL; diff --git a/tests/unit/plugins/irc/test-irc-server.cpp b/tests/unit/plugins/irc/test-irc-server.cpp index 506ba4266..2727c47c8 100644 --- a/tests/unit/plugins/irc/test-irc-server.cpp +++ b/tests/unit/plugins/irc/test-irc-server.cpp @@ -534,8 +534,8 @@ TEST(IrcServer, AllocWithUrl) POINTERS_EQUAL(NULL, irc_server_alloc_with_url (NULL)); POINTERS_EQUAL(NULL, irc_server_alloc_with_url ("")); - POINTERS_EQUAL(NULL, irc_server_alloc_with_url ("test")); + POINTERS_EQUAL(NULL, irc_server_alloc_with_url ("test://irc.example.org")); /* address */ server = irc_server_alloc_with_url ("irc://irc.example.org");