From 4803a1ecbd8662f0422574afe915653da6dd1a75 Mon Sep 17 00:00:00 2001 From: M66B Date: Mon, 25 Oct 2021 20:01:41 +0200 Subject: [PATCH] Prevent too long uid expunge command --- app/src/main/java/eu/faircode/email/Core.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/eu/faircode/email/Core.java b/app/src/main/java/eu/faircode/email/Core.java index b4e487b91d..e08ef4bab3 100644 --- a/app/src/main/java/eu/faircode/email/Core.java +++ b/app/src/main/java/eu/faircode/email/Core.java @@ -4057,6 +4057,7 @@ class Core { SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); boolean perform_expunge = prefs.getBoolean("perform_expunge", true); boolean uid_expunge = prefs.getBoolean("uid_expunge", false); + int chunk_size = prefs.getInt("chunk_size", DEFAULT_CHUNCK_SIZE); if (!perform_expunge) return false; @@ -4086,7 +4087,8 @@ class Core { @Override public Object doCommand(IMAPProtocol protocol) throws ProtocolException { // https://datatracker.ietf.org/doc/html/rfc4315#section-2.1 - protocol.uidexpunge(UIDSet.createUIDSets(Helper.toLongArray(uids))); + for (List list : Helper.chunkList(uids, chunk_size)) + protocol.uidexpunge(UIDSet.createUIDSets(Helper.toLongArray(list))); return null; } });