From: Junio C Hamano Date: Thu, 23 May 2013 19:52:11 GMT Subject: Re: [PATCH] git-send-email: fix handling of special characters Message-ID: <7vk3mpeaok.fsf@alter.siamese.dyndns.org> In-Reply-To: <20130523135418.GA20741@redhat.com> "Michael S. Tsirkin" writes: > When patch sender's name has special characters, > git send-email did not quote it before matching > against the author name. > As a result it would produce mail like this: > > Date: Thu, 23 May 2013 16:36:00 +0300 > From: "Michael S. Tsirkin" > To: qemu-devel@nongnu.org > Cc: "Michael S. Tsirkin" > Subject: [PATCH 0/9] virtio: switch to linux headers > Message-Id: <1369316169-20181-1-git-send-email-mst@redhat.com> > > From: "Michael S. Tsirkin" > > Fix by sanitizing before matching to patch author name. > > Signed-off-by: Michael S. Tsirkin > --- > git-send-email.perl | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/git-send-email.perl b/git-send-email.perl > index bd13cc8..c4dc438 100755 > --- a/git-send-email.perl > +++ b/git-send-email.perl > @@ -1400,7 +1400,8 @@ foreach my $t (@files) { > $subject = quote_subject($subject, $auto_8bit_encoding); > } > > - if (defined $author and $author ne $sender) { > + my $sanitized_sender = sanitize_address($sender); > + if (defined $author and $author ne $sanitized_sender) { > $message = "From: $author\n\n$message"; > if (defined $author_encoding) { > if ($has_content_type) { Is $author already sanitized at this point in the code? I see it was unwrapped with unquote_rfc2047 after it was read from the From: line; will it always be the same as sanitize_address($author) would return, and if not, would you rather compare between sanitized versions of sender and author, no? Also, isn't the $sender the same during the whole outer loop that iterates over @files? Do we need to apply sanitize_address() on it over and over for each and every logical line in the @header? This comment also applies to the other patch but they probably should become a single patch anyway, I guess?