diff --git a/app/src/main/java/org/thoughtcrime/securesms/util/LinkUtil.kt b/app/src/main/java/org/thoughtcrime/securesms/util/LinkUtil.kt index 704192e4c4..2422480a63 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/util/LinkUtil.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/util/LinkUtil.kt @@ -2,6 +2,8 @@ package org.thoughtcrime.securesms.util import okhttp3.HttpUrl import org.thoughtcrime.securesms.stickers.StickerUrl +import java.net.URI +import java.net.URISyntaxException import java.util.Objects import java.util.regex.Pattern @@ -37,6 +39,10 @@ object LinkUtil { return false } + if (!isValidURI(linkUrl)) { + return false + } + return HttpUrl.parse(linkUrl)?.scheme() == "https" } @@ -85,5 +91,19 @@ object LinkUtil { ) } + @JvmStatic + private fun isValidURI(linkUri: String?): Boolean { + return if (linkUri == null) { + false + } else { + try { + val ignored = URI(linkUri) + true + } catch (e: URISyntaxException) { + false + } + } + } + private data class LegalCharactersResult(val isLegal: Boolean, val domain: String? = null) }