Panic: file smtp-address.c: line 530 (smtp_address_write): assertion failed: (smtp_char_is_qpair(*p))

John Fawcett john at voipsupport.it
Sun Mar 4 23:21:12 EET 2018


On 04/03/18 09:55, Stephan Bosch wrote:
> Op 3/4/2018 om 9:07 AM schreef John Fawcett:
>> On 03/03/18 22:10, Stephan Bosch wrote:
>>> Clearly, the relevant specifications don't allow UTF-8 in the local part
>>> without email address internationalization (EAI), which Dovecot does not
>>> support nor announce yet (although that should be mended somewhat soon).
>>> My preferred fix for now would be to reject addresses like that, which
>>> would maybe still mean that this message is rejected entirely.
>>> Alternatively, that address at least needs to be skipped, ignored, or
>>> modified: all of which aren't very nice things to do. The alternative is
>>> forwarding this violation to other systems, which is seldom acceptable
>>> either.
>>>
>> Would accepting UTF8 local part in the From header have any negative
>> consequences for Dovecot? If it does not I would accept it, based on the
>> fact that it maintains greater interoperability with other systems.
>> John
>>
> Depends on what causes the panic. I don't know that yet.
>
> Regards,
>
> Stephan.

>From the code in lib-smtp/smtp-address.c function smtp_address_write, it
looks as though the assertion will happen whenever there is a non ascii
char that is also non qpair in the local part, ie
!smtp_char_is_atext(*p) and !smtp_char_is_qpair(*p).

I wasn't able to confirm it since I've not moved to 2.3 yet and the 2.2
code is different, but this should happen if there are characters from
0x01 to 0x1f or from 0x7f to 0xff in the local part.

By the way I noticed that if Postfix has SMTPUTF8 enabled, then it won't
hand off messages with this content to Dovecot since Dovecot does not
advertise support for SMTPUTF8. If SMTPUTF8 is unavailable or disabled
then Postfix passes on those characters. I suspect that Ralph has
SMTPUTF8 turned off.

John



More information about the dovecot mailing list