send-email: consider quote as delimiter instead of character
Do not consider quote inside a recipient name as character when they are not escaped. This interprets: "Jane" "Doe" <jdoe@example.com> as: "Jane Doe" <jdoe@example.com> instead of: "Jane\" \"Doe" <jdoe@example.com> Signed-off-by: Remi Lespinet <remi.lespinet@ensimag.grenoble-inp.fr> Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
8d314d7afe
commit
1fe9703f08
@ -1003,15 +1003,17 @@ sub sanitize_address {
|
|||||||
return $recipient;
|
return $recipient;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# remove non-escaped quotes
|
||||||
|
$recipient_name =~ s/(^|[^\\])"/$1/g;
|
||||||
|
|
||||||
# rfc2047 is needed if a non-ascii char is included
|
# rfc2047 is needed if a non-ascii char is included
|
||||||
if ($recipient_name =~ /[^[:ascii:]]/) {
|
if ($recipient_name =~ /[^[:ascii:]]/) {
|
||||||
$recipient_name =~ s/^"(.*)"$/$1/;
|
|
||||||
$recipient_name = quote_rfc2047($recipient_name);
|
$recipient_name = quote_rfc2047($recipient_name);
|
||||||
}
|
}
|
||||||
|
|
||||||
# double quotes are needed if specials or CTLs are included
|
# double quotes are needed if specials or CTLs are included
|
||||||
elsif ($recipient_name =~ /[][()<>@,;:\\".\000-\037\177]/) {
|
elsif ($recipient_name =~ /[][()<>@,;:\\".\000-\037\177]/) {
|
||||||
$recipient_name =~ s/(["\\\r])/\\$1/g;
|
$recipient_name =~ s/([\\\r])/\\$1/g;
|
||||||
$recipient_name = qq["$recipient_name"];
|
$recipient_name = qq["$recipient_name"];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user