From d71650225bae6188d3d2bf70894a7d279b17053c Mon Sep 17 00:00:00 2001 From: Infi Date: Sat, 2 Aug 2025 20:49:20 +0200 Subject: [PATCH] fix: unbounded array accesses in channelscreen Signed-off-by: Infi --- .../revolt/screens/chat/views/channel/ChannelScreen.kt | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/app/src/main/java/chat/revolt/screens/chat/views/channel/ChannelScreen.kt b/app/src/main/java/chat/revolt/screens/chat/views/channel/ChannelScreen.kt index 5c8b80ab..08e3b1f7 100644 --- a/app/src/main/java/chat/revolt/screens/chat/views/channel/ChannelScreen.kt +++ b/app/src/main/java/chat/revolt/screens/chat/views/channel/ChannelScreen.kt @@ -694,6 +694,9 @@ fun ChannelScreen( items( viewModel.items.size, key = { index -> + if (index < 0 || index >= viewModel.items.size) { + return@items index + } when (val item = viewModel.items[index]) { is ChannelScreenItem.RegularMessage -> item.message.id!! is ChannelScreenItem.ProspectiveMessage -> item.message.id!! @@ -717,6 +720,10 @@ fun ChannelScreen( } } ) { index -> + // out of bounds check + if (index < 0 || index >= viewModel.items.size) { + return@items + } when (val item = viewModel.items[index]) { is ChannelScreenItem.RegularMessage -> { RegularMessage(