Fix potential crash when reading bad GV1 ids in block sync.

fork-5.53.8
Greyson Parrelli 2021-09-12 11:07:28 -04:00
rodzic 6088f16e3a
commit a8419d5f02
1 zmienionych plików z 10 dodań i 1 usunięć

Wyświetl plik

@ -39,6 +39,7 @@ import org.thoughtcrime.securesms.database.model.databaseprotos.ProfileKeyCreden
import org.thoughtcrime.securesms.database.model.databaseprotos.RecipientExtras;
import org.thoughtcrime.securesms.database.model.databaseprotos.Wallpaper;
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies;
import org.thoughtcrime.securesms.groups.BadGroupIdException;
import org.thoughtcrime.securesms.groups.GroupId;
import org.thoughtcrime.securesms.groups.v2.ProfileKeySet;
import org.thoughtcrime.securesms.groups.v2.processing.GroupsV2StateProcessor;
@ -2658,7 +2659,15 @@ public class RecipientDatabase extends Database {
db.update(TABLE_NAME, setBlocked, UUID + " = ?", new String[] { uuid });
}
List<GroupId.V1> groupIdStrings = Stream.of(groupIds).map(GroupId::v1orThrow).toList();
List<GroupId.V1> groupIdStrings = new ArrayList<>(groupIds.size());
for (byte[] raw : groupIds) {
try {
groupIdStrings.add(GroupId.v1(raw));
} catch (BadGroupIdException e) {
Log.w(TAG, "[applyBlockedUpdate] Bad GV1 ID!");
}
}
for (GroupId.V1 groupId : groupIdStrings) {
db.update(TABLE_NAME, setBlocked, GROUP_ID + " = ?", new String[] { groupId.toString() });