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@dovecot.org/msg78588.html
a mail sent to User@domain.com instead of user@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@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
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@dovecot.org/msg78588.html
a mail sent to User@domain.com instead of user@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@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.
participants (2)
-
Mathieu Gosset
-
Stephan Bosch