fix: unbounded array accesses in channelscreen

Signed-off-by: Infi <infi@infi.sh>
This commit is contained in:
Infi 2025-08-02 20:49:20 +02:00
parent 45eb60a658
commit d71650225b
1 changed files with 7 additions and 0 deletions

View File

@ -694,6 +694,9 @@ fun ChannelScreen(
items( items(
viewModel.items.size, viewModel.items.size,
key = { index -> key = { index ->
if (index < 0 || index >= viewModel.items.size) {
return@items index
}
when (val item = viewModel.items[index]) { when (val item = viewModel.items[index]) {
is ChannelScreenItem.RegularMessage -> item.message.id!! is ChannelScreenItem.RegularMessage -> item.message.id!!
is ChannelScreenItem.ProspectiveMessage -> item.message.id!! is ChannelScreenItem.ProspectiveMessage -> item.message.id!!
@ -717,6 +720,10 @@ fun ChannelScreen(
} }
} }
) { index -> ) { index ->
// out of bounds check
if (index < 0 || index >= viewModel.items.size) {
return@items
}
when (val item = viewModel.items[index]) { when (val item = viewModel.items[index]) {
is ChannelScreenItem.RegularMessage -> { is ChannelScreenItem.RegularMessage -> {
RegularMessage( RegularMessage(