From 3aa12392f21c558e35a6ab75844ef822495b2d1d Mon Sep 17 00:00:00 2001 From: Stephen Paul Weber Date: Thu, 10 Aug 2023 21:44:40 -0500 Subject: [PATCH] Base64OutputStream must be flush+close or you can lose bytes --- .../java/eu/siacs/conversations/generator/IqGenerator.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/main/java/eu/siacs/conversations/generator/IqGenerator.java b/src/main/java/eu/siacs/conversations/generator/IqGenerator.java index 9cf7e9161b7c3d495a340322a1a3745c0e3f6db9..38002849ce3435debb70c08ff4dcb55dddaeac40 100644 --- a/src/main/java/eu/siacs/conversations/generator/IqGenerator.java +++ b/src/main/java/eu/siacs/conversations/generator/IqGenerator.java @@ -630,7 +630,10 @@ public class IqGenerator extends AbstractGenerator { data.setAttribute("cid", bobCid); data.setAttribute("type", f.getMimeType()); ByteArrayOutputStream b64 = new ByteArrayOutputStream((int) f.getSize() * 2); - ByteStreams.copy(new FileInputStream(f), new Base64OutputStream(b64, Base64.NO_WRAP)); + Base64OutputStream b64wrap = new Base64OutputStream(b64, Base64.NO_WRAP); + ByteStreams.copy(new FileInputStream(f), b64wrap); + b64wrap.flush(); + b64wrap.close(); data.setContent(b64.toString("utf-8")); return response; }