From 6aee27a3f17fffd4dc3790b87a09658a1f2f116e Mon Sep 17 00:00:00 2001 From: Viktor Lofgren Date: Fri, 29 Dec 2023 16:36:01 +0100 Subject: [PATCH] (*) Fix bug in EdgeDomain where it would permit domains with a trailing period, DNS style. --- .../model/src/main/java/nu/marginalia/model/EdgeDomain.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/code/common/model/src/main/java/nu/marginalia/model/EdgeDomain.java b/code/common/model/src/main/java/nu/marginalia/model/EdgeDomain.java index d60f3571..0686a9ce 100644 --- a/code/common/model/src/main/java/nu/marginalia/model/EdgeDomain.java +++ b/code/common/model/src/main/java/nu/marginalia/model/EdgeDomain.java @@ -23,6 +23,12 @@ public class EdgeDomain implements Serializable { host = host.toLowerCase(); + // Remove trailing dots, which are allowed in DNS but not in URLs + // (though sometimes still show up in the wild) + while (!host.isBlank() && host.endsWith(".")) { + host = host.substring(0, host.length() - 1); + } + var dot = host.lastIndexOf('.'); if (dot < 0 || looksLikeAnIp(host)) { // IPV6 >.>