send-email: ensure quoted addresses are rfc2047 encoded
sanitize_address assumes that quoted addresses (e.g., "first last" <first.last@example.com) do not need rfc2047 encoding, but this is not always the case. For example, various places in send-email extract addresses using parse_address_line. parse_address_line returns the addresses already quoted (e.g., "first last" <first.last@example.com), but not rfc2047 encoded. This patch makes sanitize_address stricter about what needs rfc2047 encoding and adds a test demonstrating where I noticed the problem. Signed-off-by: Jay Soffian <jaysoffian@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:

committed by
Junio C Hamano

parent
3b3637c3f1
commit
a61c0ffa44
@ -776,12 +776,13 @@ sub sanitize_address
|
||||
}
|
||||
|
||||
# if recipient_name is already quoted, do nothing
|
||||
if ($recipient_name =~ /^(".*"|=\?utf-8\?q\?.*\?=)$/) {
|
||||
if ($recipient_name =~ /^("[[:ascii:]]*"|=\?utf-8\?q\?.*\?=)$/) {
|
||||
return $recipient;
|
||||
}
|
||||
|
||||
# rfc2047 is needed if a non-ascii char is included
|
||||
if ($recipient_name =~ /[^[:ascii:]]/) {
|
||||
$recipient_name =~ s/^"(.*)"$/$1/;
|
||||
$recipient_name = quote_rfc2047($recipient_name);
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user