From 9ca47f5fc52bd7694dc998b2b22cc661b917388f Mon Sep 17 00:00:00 2001 From: Ehren Kret Date: Mon, 27 Jul 2026 12:05:55 -0500 Subject: [PATCH] Fix single character group links crashing. --- .../securesms/groups/v2/GroupInviteLinkUrl.java | 8 +++++++- .../GroupInviteLinkUrl_InvalidGroupLinkException_Test.kt | 9 +++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/groups/v2/GroupInviteLinkUrl.java b/app/src/main/java/org/thoughtcrime/securesms/groups/v2/GroupInviteLinkUrl.java index 2cca92917c..651f5bea3d 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/groups/v2/GroupInviteLinkUrl.java +++ b/app/src/main/java/org/thoughtcrime/securesms/groups/v2/GroupInviteLinkUrl.java @@ -58,7 +58,13 @@ public final class GroupInviteLinkUrl { throw new InvalidGroupLinkException("No reference was in the uri"); } - byte[] bytes = Base64.decode(encoding); + byte[] bytes; + try { + bytes = Base64.decode(encoding); + } catch (IllegalArgumentException e) { + throw new InvalidGroupLinkException(e); + } + GroupInviteLink groupInviteLink = GroupInviteLink.ADAPTER.decode(bytes); //noinspection SwitchStatementWithTooFewBranches diff --git a/app/src/test/java/org/thoughtcrime/securesms/groups/v2/GroupInviteLinkUrl_InvalidGroupLinkException_Test.kt b/app/src/test/java/org/thoughtcrime/securesms/groups/v2/GroupInviteLinkUrl_InvalidGroupLinkException_Test.kt index 3add3713be..3f7058f8dd 100644 --- a/app/src/test/java/org/thoughtcrime/securesms/groups/v2/GroupInviteLinkUrl_InvalidGroupLinkException_Test.kt +++ b/app/src/test/java/org/thoughtcrime/securesms/groups/v2/GroupInviteLinkUrl_InvalidGroupLinkException_Test.kt @@ -76,6 +76,15 @@ class GroupInviteLinkUrl_InvalidGroupLinkException_Test { .isInstanceOf() } + @Test + fun one_character_base64_ref() { + val uri = "https://signal.group/#A" + assertFailure { GroupInviteLinkUrl.fromUri(uri) } + .isInstanceOf() + .rootCause() + .isInstanceOf() + } + @Test fun bad_protobuf() { val uri = "https://signal.group/#CAESNAogpQEzURH6BON1bCS264cmTi37Yi6HTOReXZUEHdsBIgSEPCLfiL7k4wCXmwVi31USVY"