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( updates.add(
GroupChangeChatUpdate.Update( GroupChangeChatUpdate.Update(
groupExpirationTimerUpdate = GroupExpirationTimerUpdate( groupExpirationTimerUpdate = GroupExpirationTimerUpdate(
expiresInMs = change.newTimer!!.duration * 1000, expiresInMs = (change.newTimer!!.duration * 1000L).toUInt().toInt(),
updaterAci = if (editorUnknown) null else change.editorServiceIdBytes 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) { 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); String time = ExpirationUtil.getExpirationDisplayValue(context, duration);
if (update.updaterAci == null) { 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)); updates.add(updateDescription(context.getString(R.string.MessageRecord_disappearing_message_time_set_to_s, time), R.drawable.ic_update_timer_16));