From 6c09b59d1b8bec668d376fdc93cccd787a7033d0 Mon Sep 17 00:00:00 2001 From: Greyson Parrelli Date: Sat, 31 Aug 2024 10:20:44 -0400 Subject: [PATCH] Close stream after calculating length. --- .../thoughtcrime/securesms/providers/PartProvider.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/providers/PartProvider.java b/app/src/main/java/org/thoughtcrime/securesms/providers/PartProvider.java index a58a15c7a5..117834575c 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/providers/PartProvider.java +++ b/app/src/main/java/org/thoughtcrime/securesms/providers/PartProvider.java @@ -185,8 +185,12 @@ public final class PartProvider extends BaseContentProvider { } private ParcelFileDescriptor getParcelStreamForAttachment(AttachmentId attachmentId) throws IOException { - long plaintextLength = StreamUtil.getStreamLength(SignalDatabase.attachments().getAttachmentStream(attachmentId, 0)); - MemoryFile memoryFile = new MemoryFile(attachmentId.toString(), Util.toIntExact(plaintextLength)); + long plaintextLength; + try (InputStream in = SignalDatabase.attachments().getAttachmentStream(attachmentId, 0)) { + plaintextLength = StreamUtil.getStreamLength(in); + } + + MemoryFile memoryFile = new MemoryFile(attachmentId.toString(), Util.toIntExact(plaintextLength)); InputStream in = SignalDatabase.attachments().getAttachmentStream(attachmentId, 0); OutputStream out = memoryFile.getOutputStream();