Excessive APPENDLIMIT response [Re: Android after Cyrus upgrade]
Nic Bernstein <[email protected]>
| Newsgroups | gmane.mail.imap.cyrus |
|---|---|
| Message-ID | <[email protected]> |
Edda,
Great catch! Indeed, the APPENDLIMIT extension, defined in RFC7889*,
was added to Cyrus in 2021:
commit 40793dfde8c96797d86f80e9f461bea61bca3bc9
Author: Ken Murchison <[email protected]>
Date: Sat Jan 30 09:10:00 2021 -0500
imapd.c: Advertise APPENDLIMIT= capability
As noted, this is defined in imap/imapc:
{ "APPENDLIMIT=", CAPA_POSTAUTH|CAPA_VALUE, /* RFC 7889 */
{ .value = { "%2$" PRIi64, .i64p = &maxsize } } },
So the question becomes, is this a bug in Cyrus or in FairEmail? Given
that FairEmail is the only application complaining about it, I'd suggest
they're the buggy ones. But I could be wrong.
*It's worth noting* that there's appears to be no configuration option
[i.e. imapd.conf(5)] for appendlimit (looked for *limit, *maxsize,
etc.). Is this a bug? The number advertised, 18446744071562067968, is
the C compiler's maximum object size. This seems awfully large for most
mail systems, and doesn't serve any legitimate purpose as it currently sits.
Cheers,
-nic
*https://www.rfc-editor.org/rfc/rfc7889
On 5/10/23 07:20, Edda wrote:
> Hello Vladas,
>
> FairEmail is complaining about a "too long" Long. It's in the source
> code of FairEmail in
> ./app/src/main/java//eu/faircode/email/EmailService.java at:
>
> Long getMaxSize() throws MessagingException {
> // https://support.google.com/mail/answer/6584#limit
>
> String size;
> if (iservice instanceof SMTPTransport) {
> // https://tools.ietf.org/html/rfc1870
> size = getTransport().getExtensionParameter("SIZE");
> } else if (iservice instanceof IMAPStore) {
> // https://tools.ietf.org/html/rfc7889
> size = ((IMAPStore) iservice).getCapability("APPENDLIMIT");
> } else
> return null;
>
> if (!TextUtils.isEmpty(size) && TextUtils.isDigitsOnly(size)) {
> * long s = Long.parseLong(size);*
> if (s != 0) // Not infinite
> return s;
> }
>
> return null;
> }
>
> String "size" is indeed too long for a Long: "18446744071562067968"
>
> Since it's an IMAP Service, APPENDLIMIT seems to be the problem.
>
> I just checked at your server:
>
> . CAPABILITY
> * CAPABILITY IMAP4rev1 LITERAL+ ID ENABLE ACL ANNOTATE-EXPERIMENT-1
> BINARY CATENATE CHILDREN CONDSTORE CREATE-SPECIAL-USE ESEARCH ESORT
> LIST-EXTENDED LIST-MYRIGHTS LIST-STATUS MAILBOX-REFERRALS METADATA
> MOVE MULTIAPPEND NAMESPACE OBJECTID PREVIEW QRESYNC QUOTA RIGHTS=kxten
> SAVEDATE SEARCH=FUZZY SORT SORT=DISPLAY SPECIAL-USE STATUS=SIZE
> THREAD=ORDEREDSUBJECT THREAD=REFERENCES UIDPLUS UNSELECT URLAUTH
> URLAUTH=BINARY WITHIN DIGEST=SHA1 LIST-METADATA NO_ATOMIC_RENAME SCAN
> SORT=MODSEQ SORT=UID THREAD=REFS X-CREATEDMODSEQ X-REPLICATION
> X-SIEVE-MAILBOX XLIST XMOVE AUTH=SCRAM-SHA-512-PLUS AUTH=SCRAM-SHA-512
> AUTH=SCRAM-SHA-384-PLUS AUTH=SCRAM-SHA-384 AUTH=SCRAM-SHA-256-PLUS
> AUTH=SCRAM-SHA-256 AUTH=SCRAM-SHA-224-PLUS AUTH=SCRAM-SHA-224
> AUTH=SCRAM-SHA-1-PLUS AUTH=SCRAM-SHA-1 AUTH=GSS-SPNEGO AUTH=GSSAPI
> AUTH=DIGEST-MD5 AUTH=OTP AUTH=NTLM AUTH=CRAM-MD5 AUTH=LOGIN AUTH=PLAIN
> SASL-IR XCONVERSATIONS COMPRESS=DEFLATE X-QUOTA=STORAGE
> X-QUOTA=MESSAGE X-QUOTA=X-ANNOTATION-STORAGE X-QUOTA=X-NUM-FOLDERS
> IDLE *APPENDLIMIT=18446744071562067968*
>
> APPENDLIMIT is advertised prior to login. Therefore it doesn't show up
> in the telemetry logs I think.
>
> I don't have cyrus 3.6.1 anywhere yet, but I think you should look at
> maxmessagesize in imapd.conf
>
> Best regards,
> Edda
>
>
> Am 09.05.23 um 14:20 schrieb vladas via Info:
>> I have read the man
>> <https://sala.online.lt/doc/cyrus-imapd/html/imap/reference/manpages/index.html>
>> pages, release
>> <https://www.cyrusimap.org/imap/download/release-notes/3.6/x/3.6.0.html>
>> and upgrade <https://www.cyrusimap.org/imap/download/upgrade.html>
>> notes again, checked cyrus.conf and imapd.conf settings, restarted
>> Cyrus imapd and saslauthd daemons, verified configuration and spool
>> files — and still found no cause.
>>
>> Then I completely removed my account and all assets from FairEmail on
>> my Android Motorola phone, Asus pad, and then set them again
>> manually, step by step, with different connection modes (SSL/TLS
>> :933, STARTTLS :143, insecure) — all of them are accepted, but the
>> sync soon gets stuck and a warning message is issued with always the
>> same error code:
>>
>>> For input string: "1844674407152067968"
>>
>> FairEmail is the best MUA I have ever seen: lean, secure, fast, with
>> a clear and convenient user interface — despite of being
>> full-featured and standards-compliant, with hundred of preconfigured
>> settings of commercial providers, and with detailed logs:
>>
>>
>>
>> My mail is hosted on sala.online.lt [217.147.40.110] and serves,
>> among others, the on.lt domain. Faircode.eu is a domain of the
>> developer. This log is laid out here from bottom to the top. Sorry, I
>> am not a programmer and do not understand this log. I guess there is
>> a tiny software bug, that only emerged after the upgrade.
>
>
> *Cyrus <https://cyrus.topicbox.com/latest>* / Info / see discussions
> <https://cyrus.topicbox.com/groups/info> + participants
> <https://cyrus.topicbox.com/groups/info/members> + delivery options
> <https://cyrus.topicbox.com/groups/info/subscription> Permalink
> <https://cyrus.topicbox.com/groups/info/T5a17281bbf8e2112-M100961f79269de49a0341678>
>
--
Nic [email protected]
https://www.nicbernstein.com
------------------------------------------
Cyrus: Info
Permalink: https://cyrus.topicbox.com/groups/info/Taa37d8c4bdd50f37-M3bc40125b6bc0425c8f3dcc7
Delivery options: https://cyrus.topicbox.com/groups/info/subscription