diff --git a/src/gui/UrlTools.cpp b/src/gui/UrlTools.cpp index bd57ba8e0..90c945132 100644 --- a/src/gui/UrlTools.cpp +++ b/src/gui/UrlTools.cpp @@ -195,7 +195,7 @@ bool UrlTools::isUrlValid(const QString& urlField, bool looseComparison) const // Prevent TLD wildcards if (looseComparison && url.contains(UrlTools::URL_WILDCARD)) { const auto tld = getTopLevelDomainFromUrl(url); - if (qUrl.host() == QString("%1.%2").arg(UrlTools::URL_WILDCARD, tld)) { + if (tld.contains(UrlTools::URL_WILDCARD) || qUrl.host() == QString("%1.%2").arg(UrlTools::URL_WILDCARD, tld)) { return false; } } diff --git a/tests/TestUrlTools.cpp b/tests/TestUrlTools.cpp index 49aae559d..f6b637c65 100644 --- a/tests/TestUrlTools.cpp +++ b/tests/TestUrlTools.cpp @@ -158,6 +158,10 @@ void TestUrlTools::testIsUrlValidWithLooseComparison() urls["*.com/"] = false; urls["*.com/*"] = false; urls["**.com/**"] = false; + urls["*.*"] = false; + urls["https://example.*"] = false; + urls["https://*.example.*"] = false; + urls["https://example.c*"] = false; QHashIterator i(urls); while (i.hasNext()) {