From 26b1d3a0f8763affec4cdce9859aaee93f5f8bfb Mon Sep 17 00:00:00 2001 From: Greyson Parrelli Date: Mon, 8 Jun 2026 16:14:12 +0000 Subject: [PATCH] Improve username link storage service validation. --- .../securesms/storage/StorageSyncHelper.kt | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/storage/StorageSyncHelper.kt b/app/src/main/java/org/thoughtcrime/securesms/storage/StorageSyncHelper.kt index e0240a99fe..3e5358fbe4 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/storage/StorageSyncHelper.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/storage/StorageSyncHelper.kt @@ -314,12 +314,18 @@ object StorageSyncHelper { } if (update.new.proto.usernameLink != null) { - SignalStore.account.usernameLink = UsernameLinkComponents( - update.new.proto.usernameLink!!.entropy.toByteArray(), - UuidUtil.parseOrThrow(update.new.proto.usernameLink!!.serverId.toByteArray()) - ) + val remoteServerId = UuidUtil.parseOrNull(update.new.proto.usernameLink!!.serverId.toByteArray()) - SignalStore.misc.usernameQrCodeColorScheme = StorageSyncModels.remoteToLocalUsernameColor(update.new.proto.usernameLink!!.color) + if (remoteServerId != null) { + SignalStore.account.usernameLink = UsernameLinkComponents( + update.new.proto.usernameLink!!.entropy.toByteArray(), + remoteServerId + ) + + SignalStore.misc.usernameQrCodeColorScheme = StorageSyncModels.remoteToLocalUsernameColor(update.new.proto.usernameLink!!.color) + } else { + Log.w(TAG, "Remote username link had a malformed serverId. Ignoring the username link.") + } } SignalStore.releaseChannel.releaseChannelRecipientId?.let { releaseChannelId ->