From c4ca0fee406bdecc20b1db9a2b43be04623f236a Mon Sep 17 00:00:00 2001 From: Jon Chambers Date: Wed, 13 Dec 2023 11:27:37 -0500 Subject: [PATCH] Synchronize access to `responseItems` when assembling a "get keys" response --- .../textsecuregcm/controllers/KeysController.java | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/service/src/main/java/org/whispersystems/textsecuregcm/controllers/KeysController.java b/service/src/main/java/org/whispersystems/textsecuregcm/controllers/KeysController.java index a86302452..a899cdefa 100644 --- a/service/src/main/java/org/whispersystems/textsecuregcm/controllers/KeysController.java +++ b/service/src/main/java/org/whispersystems/textsecuregcm/controllers/KeysController.java @@ -14,7 +14,6 @@ import io.swagger.v3.oas.annotations.parameters.RequestBody; import io.swagger.v3.oas.annotations.responses.ApiResponse; import io.swagger.v3.oas.annotations.tags.Tag; import java.util.ArrayList; -import java.util.Collections; import java.util.List; import java.util.Map; import java.util.Optional; @@ -253,9 +252,11 @@ public class KeysController { case PNI -> device.getPhoneNumberIdentityRegistrationId().orElse(device.getRegistrationId()); }; - responseItems.add( - new PreKeyResponseItem(device.getId(), registrationId, signedEcPreKey, unsignedEcPreKey, - pqPreKey)); + synchronized (responseItems) { + responseItems.add( + new PreKeyResponseItem(device.getId(), registrationId, signedEcPreKey, unsignedEcPreKey, + pqPreKey)); + } } }); })