threads / patch / 5354

patchgit-send-email: Don't set author_not_sender from Cc: lines

Subject: [PATCH] git-send-email: Don't set author_not_sender from Cc: lines

## tl;dr

3 messages between Aug 22, 2006 and Aug 23, 2006. Diffs are folded; open one to read it.

replies: 2people: 2as markdown or json

Haavard Skinnemoen· Aug 22, 2006, 13:38 UTC · lore

When an mbox-style patch contains a Cc: line in the header, git-send-email will check the address against the sender specified on the command line. If they don't match, sender_not_author will be set to the address obtained from the Cc line.

When this happens, git-send-email inserts a From: line at the beginning of the message body with the address obtained from the Cc line in the header, and the sender might be accused of forging patch authors.

This patch fixes this by only updating sender_not_author when processing From: lines, not when processing Cc: lines.

Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
---

This email was sent using git-send-email with the patch applied. Junio was Cc'ed by editing the patch header -- let's see if it works...

 git-send-email.perl |    7 +++++--
 1 files changed, 5 insertions(+), 2 deletions(-)
Show changes to git-send-email.perl +5 −2
diff --git a/git-send-email.perl b/git-send-email.perl
index a83c7e9..0197454 100755
--- a/git-send-email.perl
+++ b/git-send-email.perl
@@ -506,7 +506,7 @@ foreach my $t (@files) {
 				if (/^Subject:\s+(.*)$/) {
 					$subject = $1;
 
-				} elsif (/^(Cc|From):\s+(.*)$/) {
+				} elsif (/^(From):\s+(.*)$/) {
 					if ($2 eq $from) {
 						next if ($suppress_from);
 					}
@@ -516,8 +516,11 @@ foreach my $t (@files) {
 					printf("(mbox) Adding cc: %s from line '%s'\n",
 						$2, $_) unless $quiet;
 					push @cc, $2;
+				} elsif (/^(Cc):\s+(.*)$/) {
+					printf("(mbox) Adding cc: %s from line '%s'\n",
+						$2, $_) unless $quiet;
+					push @cc, $2;
 				}
-
 			} else {
 				# In the traditional
 				# "send lots of email" format,
-- 
1.4.0
Junio C Hamano· Aug 23, 2006, 01:34 UTC · re: Haavard Skinnemoen · lore

Re: [PATCH] git-send-email: Don't set author_not_sender from Cc: lines

Haavard Skinnemoen <hskinnemoen@atmel.com> writes:
> When an mbox-style patch contains a Cc: line in the header,
> git-send-email will check the address against the sender specified
> on the command line. If they don't match, sender_not_author will
> be set to the address obtained from the Cc line.
Show 22 quoted lines
> @@ -506,7 +506,7 @@ foreach my $t (@files) {
>  				if (/^Subject:\s+(.*)$/) {
>  					$subject = $1;
>  
> -				} elsif (/^(Cc|From):\s+(.*)$/) {
> +				} elsif (/^(From):\s+(.*)$/) {
>  					if ($2 eq $from) {
>  						next if ($suppress_from);
>  					}
> @@ -516,8 +516,11 @@ foreach my $t (@files) {
>  					printf("(mbox) Adding cc: %s from line '%s'\n",
>  						$2, $_) unless $quiet;
>  					push @cc, $2;
> +				} elsif (/^(Cc):\s+(.*)$/) {
> +					printf("(mbox) Adding cc: %s from line '%s'\n",
> +						$2, $_) unless $quiet;
> +					push @cc, $2;
>  				}
> -
>  			} else {
>  				# In the traditional
>  				# "send lots of email" format,

The patch looks wrong. If your name is on CC: and you want to suppress sending to yourself what happens?

How about doing something like this instead?
Show changes to git-send-email.perl +1 −1
diff --git a/git-send-email.perl b/git-send-email.perl
index a83c7e9..8adb6b9 100755
--- a/git-send-email.perl
+++ b/git-send-email.perl
@@ -510,7 +510,7 @@ foreach my $t (@files) {
 					if ($2 eq $from) {
 						next if ($suppress_from);
 					}
-					else {
+					elsif ($1 eq 'From') {
 						$author_not_sender = $2;
 					}
 					printf("(mbox) Adding cc: %s from line '%s'\n",
Haavard Skinnemoen· Aug 23, 2006, 09:14 UTC · re: Junio C Hamano · lore

Re: [PATCH] git-send-email: Don't set author_not_sender from Cc: lines

On Tue, 22 Aug 2006 18:34:16 -0700 Junio C Hamano <junkio@cox.net> wrote:

> The patch looks wrong.  If your name is on CC: and you want to
> suppress sending to yourself what happens?

It will still send it to you, I guess. The documentation only mentions what happens with From: lines, so I wasn't really sure what behaviour is expected...

> How about doing something like this instead?

Yeah, that's probably better. I just tested it by sending a mail to myself, and it doesn't append an extra From: line, so it solves the problem as far as I'm concerned.

Haavard
Show 15 quoted lines
> diff --git a/git-send-email.perl b/git-send-email.perl
> index a83c7e9..8adb6b9 100755
> --- a/git-send-email.perl
> +++ b/git-send-email.perl
> @@ -510,7 +510,7 @@ foreach my $t (@files) {
>  					if ($2 eq $from) {
>  						next if
> ($suppress_from); }
> -					else {
> +					elsif ($1 eq 'From') {
>  						$author_not_sender =
> $2; }
>  					printf("(mbox) Adding cc: %s
> from line '%s'\n",
> 

← back to recent threads