From 9110202e4aee2e2071b2c6a3017ff20ac048105a Mon Sep 17 00:00:00 2001 From: M66B Date: Tue, 21 Dec 2021 17:11:41 +0100 Subject: [PATCH] Prevent send crash --- .../java/com/sun/mail/smtp/SMTPTransport.java | 32 +++++++++++-------- 1 file changed, 18 insertions(+), 14 deletions(-) diff --git a/app/src/main/java/com/sun/mail/smtp/SMTPTransport.java b/app/src/main/java/com/sun/mail/smtp/SMTPTransport.java index 13ceef2646..5d4ae08565 100644 --- a/app/src/main/java/com/sun/mail/smtp/SMTPTransport.java +++ b/app/src/main/java/com/sun/mail/smtp/SMTPTransport.java @@ -1325,20 +1325,24 @@ public class SMTPTransport extends Transport { traceOutput.setReporter(total.value, new TraceOutputStream.IReport() { @Override public void report(int pos, int total) { - if (reporter == null) - return; - - int q = 0; - if (fd != null) - q = eu.faircode.email.ConnectionHelper.jni_socket_get_send_buffer(fd); - if (q > pos) - q = pos; - - int sent = pos - q; - if (sent > total) - sent = total; - - reporter.report(sent, total); + try { + if (reporter == null) + return; + + int q = 0; + if (fd != null) + q = eu.faircode.email.ConnectionHelper.jni_socket_get_send_buffer(fd); + if (q > pos) + q = pos; + + int sent = pos - q; + if (sent > total) + sent = total; + + reporter.report(sent, total); + } catch (Throwable ex) { + eu.faircode.email.Log.e(ex); + } } }); if (chunkSize > 0 && supportsExtension("CHUNKING")) {