From e30f6be5963f93c5c1e46d83d6563c19a28bda11 Mon Sep 17 00:00:00 2001 From: M66B Date: Mon, 2 Dec 2019 14:31:44 +0100 Subject: [PATCH] Check S/MIME content availability --- .../java/eu/faircode/email/FragmentMessages.java | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/FragmentMessages.java b/app/src/main/java/eu/faircode/email/FragmentMessages.java index 4c8110b04a..d76fc2fcea 100644 --- a/app/src/main/java/eu/faircode/email/FragmentMessages.java +++ b/app/src/main/java/eu/faircode/email/FragmentMessages.java @@ -4379,10 +4379,15 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences. File signature = null; List attachments = db.attachment().getAttachments(id); for (EntityAttachment attachment : attachments) - if (EntityAttachment.SMIME_SIGNATURE.equals(attachment.encryption)) + if (EntityAttachment.SMIME_SIGNATURE.equals(attachment.encryption)) { + if (!attachment.available) + throw new IllegalArgumentException(context.getString(R.string.title_attachments_missing)); signature = attachment.getFile(context); - else if (EntityAttachment.SMIME_CONTENT.equals(attachment.encryption)) + } else if (EntityAttachment.SMIME_CONTENT.equals(attachment.encryption)) { + if (!attachment.available) + throw new IllegalArgumentException(context.getString(R.string.title_attachments_missing)); content = attachment.getFile(context); + } if (content == null) throw new IllegalArgumentException("Signed content missing"); @@ -4433,9 +4438,12 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences. List attachments = db.attachment().getAttachments(id); for (EntityAttachment attachment : attachments) if (EntityAttachment.SMIME_MESSAGE.equals(attachment.encryption)) { + if (!attachment.available) + throw new IllegalArgumentException(context.getString(R.string.title_attachments_missing)); input = attachment.getFile(context); break; } + if (input == null) throw new IllegalArgumentException("Encrypted message missing");