[PATCH] git-send-email: fix handling of special characters
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 m...@redhat.com To: qemu-de...@nongnu.org Cc: Michael S. Tsirkin m...@redhat.com Subject: [PATCH 0/9] virtio: switch to linux headers Message-Id: 1369316169-20181-1-git-send-email-...@redhat.com From: Michael S. Tsirkin m...@redhat.com Fix by sanitizing before matching to patch author name. Signed-off-by: Michael S. Tsirkin m...@redhat.com --- 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) { -- MST -- To unsubscribe from this list: send the line unsubscribe git in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH] git-send-email: fix handling of special characters
Michael S. Tsirkin m...@redhat.com 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 m...@redhat.com To: qemu-de...@nongnu.org Cc: Michael S. Tsirkin m...@redhat.com Subject: [PATCH 0/9] virtio: switch to linux headers Message-Id: 1369316169-20181-1-git-send-email-...@redhat.com From: Michael S. Tsirkin m...@redhat.com Fix by sanitizing before matching to patch author name. Signed-off-by: Michael S. Tsirkin m...@redhat.com --- 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? -- To unsubscribe from this list: send the line unsubscribe git in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH] git-send-email: fix handling of special characters
Junio C Hamano gits...@pobox.com writes: +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) { ... 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? Ahh, I think $sender is constant, but this is not for each @header line, but done per @file, so it is a much lessor offence than what I originally thought. The other one does do that inside the loop but if we have a single copy of $sanitized_sender at the very beginning that will become a non-issue. This comment also applies to the other patch but they probably should become a single patch anyway, I guess? -- To unsubscribe from this list: send the line unsubscribe git in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH] git-send-email: fix handling of special characters
On Thu, May 23, 2013 at 12:52:11PM -0700, Junio C Hamano wrote: Michael S. Tsirkin m...@redhat.com 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 m...@redhat.com To: qemu-de...@nongnu.org Cc: Michael S. Tsirkin m...@redhat.com Subject: [PATCH 0/9] virtio: switch to linux headers Message-Id: 1369316169-20181-1-git-send-email-...@redhat.com From: Michael S. Tsirkin m...@redhat.com Fix by sanitizing before matching to patch author name. Signed-off-by: Michael S. Tsirkin m...@redhat.com --- 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? Yes. I'll have to look at the code more closely. In my testing author here is Michael S. Tsirkin m...@redhat.com so it matches the sanitized sender. Of course that's because my name does not have non-ascii, just a dot. 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? OK so now you are ok with this last bit, right? -- To unsubscribe from this list: send the line unsubscribe git in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH] git-send-email: fix handling of special characters
Michael S. Tsirkin m...@redhat.com writes: 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? Yes. I'll have to look at the code more closely. In my testing author here is Michael S. Tsirkin m...@redhat.com so it matches the sanitized sender. Of course that's because my name does not have non-ascii, just a dot. So the conclusion is that the logic to see if the names are the same needs a bit more work than what was posted, I think? 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? OK so now you are ok with this last bit, right? Sorry, but I am not sure what you are asking. Do I think the assignment to $sanitized_sender can and should be done just once, not once per file, if the code inspection tells us that $sender is a constant inside the foreach (@files) loop? Do I think these two are solving pretty much the same thing and is better to be done in a single patch? I didn't really think them through when I responded, but now after you made me think, I would say the answers to both of them are yes. -- To unsubscribe from this list: send the line unsubscribe git in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH] git-send-email: fix handling of special characters
On Thu, May 23, 2013 at 02:27:59PM -0700, Junio C Hamano wrote: Michael S. Tsirkin m...@redhat.com writes: 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? Yes. I'll have to look at the code more closely. In my testing author here is Michael S. Tsirkin m...@redhat.com so it matches the sanitized sender. Of course that's because my name does not have non-ascii, just a dot. So the conclusion is that the logic to see if the names are the same needs a bit more work than what was posted, I think? I think so. And a bit more testing with non-ASCII. Plan to look into this around Sunday if no one beats me to it. 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? OK so now you are ok with this last bit, right? Sorry, but I am not sure what you are asking. Do I think the assignment to $sanitized_sender can and should be done just once, not once per file, if the code inspection tells us that $sender is a constant inside the foreach (@files) loop? Do I think these two are solving pretty much the same thing and is better to be done in a single patch? I didn't really think them through when I responded, but now after you made me think, I would say the answers to both of them are yes. -- To unsubscribe from this list: send the line unsubscribe git in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html