Mathieu Gosset
2020-Nov-09 11:36 UTC
DOP-1414 sieve vacation address matching is case sensitive
Hello, One year ago a bug was reported regarding pigeonhole vacation plugin https://www.mail-archive.com/dovecot at dovecot.org/msg78588.html a mail sent to User at domain.com instead of user at domain.com will generate a " vacation action: discarding vacation response for implicitly delivered message; no known (envelope) recipient address found in message headers (recipient=<user at domain.com>, and no additional `:addresses' are specified)" and no auto-response will be sent the problem seems to be located in /src/lib-sieve/plugins/vacation/cmd-vacation.c and the _contains_my_address_() function the comparison is done using dovecot's lib-smtp (src/lib-smtp/smtp-address.h) smtp_address_equals() function, which returns smtp_address_cmp(.) == 0; smtp_address_cmp() does a case insensitive comparison of the domain parts (using null_strcasecmp()) and a case sensitive comparison of the local parts (using null_strcmp()) There is probably a good reason why the local parts comparison is case sensitive within smtp_address_cmp(), but having vacation rely on that function causes the problem described above. Is there any plan to fix that ? Regards
Stephan Bosch
2020-Nov-09 21:33 UTC
DOP-1414 sieve vacation address matching is case sensitive
On 09/11/2020 12:36, Mathieu Gosset wrote:> Hello, > > One year ago a bug was reported regarding pigeonhole vacation plugin > https://www.mail-archive.com/dovecot at dovecot.org/msg78588.html > > a mail sent to User at domain.com instead of user at domain.com will generate a " > vacation action: discarding vacation response for implicitly delivered > message; no known (envelope) recipient address found in message headers > (recipient=<user at domain.com>, and no additional `:addresses' are specified)" > and no auto-response will be sent > > the problem seems to be located in > /src/lib-sieve/plugins/vacation/cmd-vacation.c and the > _contains_my_address_() function > > the comparison is done using dovecot's lib-smtp > (src/lib-smtp/smtp-address.h) smtp_address_equals() function, which returns > smtp_address_cmp(.) == 0; > > smtp_address_cmp() does a case insensitive comparison of the domain parts > (using null_strcasecmp()) and a case sensitive comparison of the local parts > (using null_strcmp()) > > There is probably a good reason why the local parts comparison is case > sensitive within smtp_address_cmp(), but having vacation rely on that > function causes the problem described above. > > Is there any plan to fix that ?It's DOP-1424 and according to the bug tracker it is fixed per 2.3.10.1. Regards, Stephan.