On 30 Mar 2016, at 11:51, Ralf Hildebrandt Ralf.Hildebrandt@charite.de wrote:
We're encountering a crash when proxying to an Exchange server:
Mar 30 10:40:47 mproxy dovecot: imap-login: Login: user=<xxxbxxx>, method=PLAIN, rip=10.39.76.71, lip=141.42.206.11, mpid=18556, TLS, session=<H98xGkAvfvMKJ0xH> Mar 30 10:40:49 mproxy dovecot: imap(xxxbxxx): Fatal: block_alloc(134217728): Out of memory Mar 30 10:40:49 mproxy dovecot: imap(xxxbxxx): Error: Raw backtrace: /usr/lib/dovecot/libdovecot.so.0(message_parse_header_next+0x72) [0x7fb0b828d2a2] -> /usr/lib/dovecot/libdovecot.so.0(+0x6e919) [0x7fb0b8287919] -> /usr/lib/dovecot/libdovecot.so.0(i_stream_read+0x53) [0x7fb0b82a8ee3] -> /usr/lib/dovecot/libdovecot.so.0(i_stream_read_data+0x3d) [0x7fb0b82a991d] -> /usr/lib/dovecot/libdovecot.so.0(message_parse_header_next+0x72) [0x7fb0b828d2a2] ->
The user has an email that contains a huge >100MB header line?
I think there's something in here that could use fixing. It shouldn't be that easy to make Dovecot use up that much memory. Some istream buffer size limit is missing somewhere I think.. The attached patch might help?