From a65c4f90f4d7d8f5ebd15f0f5b5511d893de3ec4 Mon Sep 17 00:00:00 2001 From: Ehren Kret <62033421+ehrenkret-signal@users.noreply.github.com> Date: Tue, 31 Mar 2020 11:17:40 -0700 Subject: [PATCH] Avoid potential race condition in attachment uploads. --- .../signalservice/api/SignalServiceMessageSender.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/libsignal/service/src/main/java/org/whispersystems/signalservice/api/SignalServiceMessageSender.java b/libsignal/service/src/main/java/org/whispersystems/signalservice/api/SignalServiceMessageSender.java index afa7c584a9..951926e815 100644 --- a/libsignal/service/src/main/java/org/whispersystems/signalservice/api/SignalServiceMessageSender.java +++ b/libsignal/service/src/main/java/org/whispersystems/signalservice/api/SignalServiceMessageSender.java @@ -353,12 +353,13 @@ public class SignalServiceMessageSender { attachment.getListener(), attachment.getCancelationSignal()); - AttachmentUploadAttributes uploadAttributes = null; + AttachmentUploadAttributes uploadAttributes = null; + Optional localPipe = pipe.get(); - if (pipe.get().isPresent()) { + if (localPipe.isPresent()) { Log.d(TAG, "Using pipe to retrieve attachment upload attributes..."); try { - uploadAttributes = pipe.get().get().getAttachmentUploadAttributes(); + uploadAttributes = localPipe.get().getAttachmentUploadAttributes(); } catch (IOException e) { Log.w(TAG, "Failed to retrieve attachment upload attributes using pipe. Falling back..."); }