On Tue, 19 Mar 2019 17:45:50 +0000 (UTC)
Thorben Thuermer <[email protected]> wrote:
> i am running postfix 3.4.1-1 (from debian sid).
>
> i recently noticed that mails from multiple senders (most importantly
> google mail) are being rejected with:
> > 552 5.3.4 Chunk exceeds message size limit
>
> postfix logs:
> > Mar 19 17:42:48 ngs postfix/smtpd[22671]: warning: 25E74C1: BDAT
> > request from mail-ed1-f44.google.com[209.85.208.44] exceeds message
> > size limit
>
> this happens regardless of the actual message size,
> even a one-line plaintext message is rejected.
>
> /etc/postfix/main.cf has:
> header_size_limit = 4096000
> message_size_limit = 0
>
> downgrading to 3.3.2 fixed the issue.
>
> i found the responsible code in postfix-3.4.1/src/smtpd/smtpd.c
> commenting out that check also fixes the issue.
>
> /* Block too large chunks. */
> if (state->act_size > var_message_limit - chunk_size) {
after some more reading of code,
it turns out that this usage of `var_message_limit` is missing the check
of `var_message_limit > 0` that in other places enables `0` to mean
"no limit", and thus it enforces a limit of 0 with my config :(
> state->error_mask |= MAIL_ERROR_POLICY;
> msg_warn("%s: BDAT request from %s exceeds message size
> limit", state->queue_id ? state->queue_id : "NOQUEUE",
> state->namaddr);
> return skip_bdat(state, chunk_size, final_chunk,
> "552 5.3.4 Chunk exceeds message size
> limit"); }
- T.