From c6b01fcc32956518ce010d4d367b844c006958d2 Mon Sep 17 00:00:00 2001 From: Jan Engelhardt Date: Mon, 4 Mar 2024 11:45:49 +0100 Subject: url: repair off-by-one bug in extractHost (#297) `hostPart[len]` is pointing to `]`, but we need to check the char after that. Fixes: v0.9.2-187-g874a1d8c --- tests/utility/urlTest.cpp | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) (limited to 'tests') diff --git a/tests/utility/urlTest.cpp b/tests/utility/urlTest.cpp index c792c772..aca8300e 100644 --- a/tests/utility/urlTest.cpp +++ b/tests/utility/urlTest.cpp @@ -35,7 +35,8 @@ VMIME_TEST_SUITE_BEGIN(urlTest) VMIME_TEST(testParse3) VMIME_TEST(testParse4) VMIME_TEST(testParse5) - VMIME_TEST(testParseIPv6) + VMIME_TEST(testParseIPv6Full) + VMIME_TEST(testParseIPv6NoPort) VMIME_TEST(testGenerate) VMIME_TEST(testUtilsEncode) VMIME_TEST(testUtilsDecode) @@ -202,7 +203,7 @@ VMIME_TEST_SUITE_BEGIN(urlTest) VASSERT_EQ("4", "myserver.com", u1.getHost()); } - void testParseIPv6() { + void testParseIPv6Full() { vmime::utility::url u1("", ""); @@ -214,6 +215,14 @@ VMIME_TEST_SUITE_BEGIN(urlTest) VASSERT_EQ("6", "/p", u1.getPath()); } + void testParseIPv6NoPort() { + + vmime::utility::url u1("", ""); + + VASSERT_EQ("1", true, parseHelper(u1, "http://[::1]/")); + VASSERT_EQ("2", "::1", u1.getHost()); + } + void testGenerate() { vmime::utility::url u1("proto", "host", 12345, "path", "user", "password"); -- cgit v1.2.3