Fix signed int overflow in disappearing timer UI message.

This commit is contained in:
Nicholas Tinsley 2024-04-12 16:28:45 -04:00 committed by Greyson Parrelli
parent eec2685e67
commit 89eeae36c4
2 changed files with 2 additions and 2 deletions

View file

@ -384,7 +384,7 @@ object GroupsV2UpdateMessageConverter {
updates.add(
GroupChangeChatUpdate.Update(
groupExpirationTimerUpdate = GroupExpirationTimerUpdate(
expiresInMs = change.newTimer!!.duration * 1000,
expiresInMs = (change.newTimer!!.duration * 1000L).toUInt().toInt(),
updaterAci = if (editorUnknown) null else change.editorServiceIdBytes
)
)

View file

@ -234,7 +234,7 @@ final class GroupsV2UpdateMessageProducer {
}
}
private void describeGroupExpirationTimerUpdate(@NonNull GroupExpirationTimerUpdate update, @NonNull List<UpdateDescription> updates) {
final int duration = update.expiresInMs / 1000;
final int duration = Math.toIntExact(Integer.toUnsignedLong(update.expiresInMs) / 1000);
String time = ExpirationUtil.getExpirationDisplayValue(context, duration);
if (update.updaterAci == null) {
updates.add(updateDescription(context.getString(R.string.MessageRecord_disappearing_message_time_set_to_s, time), R.drawable.ic_update_timer_16));