Fix base64 decode issue with short signal.me URLs.

This commit is contained in:
Ehren Kret
2026-07-27 12:06:40 -05:00
committed by Michelle Tang
parent 9ca47f5fc5
commit 2162fccd7d
2 changed files with 18 additions and 1 deletions
@@ -311,7 +311,11 @@ object UsernameRepository {
fun parseLink(url: String): UsernameLinkComponents? {
val match: MatchResult = URL_REGEX.find(url) ?: return null
val path: String = match.groups[2]?.value ?: return null
val allBytes: ByteArray = Base64.decode(path)
val allBytes: ByteArray = try {
Base64.decode(path)
} catch (e: IllegalArgumentException) {
return null
}
if (allBytes.size != 48) {
return null
@@ -0,0 +1,13 @@
package org.thoughtcrime.securesms.profiles.manage
import assertk.assertThat
import assertk.assertions.isNull
import org.junit.Test
class UsernameRepositoryTest {
@Test
fun parseLink_one_character_base64_ref() {
val url = "https://signal.me/#eu/A"
assertThat(UsernameRepository.parseLink(url)).isNull()
}
}