From: Ævar Arnfjörð Bjarmason Date: Mon, 04 Oct 2010 07:15:13 GMT Subject: Re: [PATCH] send-email: Don't leak To: headers between patches Message-ID: In-Reply-To: <1286175924-15761-1-git-send-email-bebarino@gmail.com> On Mon, Oct 4, 2010 at 07:05, Stephen Boyd wrote: > If the first patch in a series has a To: header in the file and the > second patch in the series doesn't the address from the first patch will > be part of the To: addresses in the second patch. Fix this by treating the > to list like the cc list. Have an initial to list come from the command > line, user input and config options. Then build up a to list from each > patch and concatenate the two together before sending the patch. Finally, > reset the list after sending each patch so the To: headers from a patch > don't get used for the next one. Couldn't this whole thing be done by: >  # Variables we fill in automatically, or via prompting: > -my (@to,$no_to,@cc,$no_cc,@initial_cc,@bcclist,$no_bcc,@xh, > +my (@to,$no_to,@initial_to,@cc,$no_cc,@initial_cc,@bcclist,$no_bcc,@xh, Changing this to an "our" variable instead of a "my". >        my $body_encoding; > +       @to = (); Then doing: local @to = @to; > +       @to = (@initial_to, @to); >        @cc = (@initial_cc, @cc); And keeping this as it is, and should the @cc addresses by accumulated across patches, but not the @to addresses? > +test_expect_success $PREREQ 'To headers from files reset each patch' ' > +       patch1=`git format-patch -1 --to="bodies@example.com"` && > +       patch2=`git format-patch -1 --to="other@example.com" HEAD~` && > +       test_when_finished "rm $patch1 && rm $patch2" && > +       git send-email \ > +               --dry-run \ > +               --from="Example " \ > +               --to="nobody@example.com" \ > +               --smtp-server relay.example.com \ > +               $patch1 $patch2 >stdout && > +       test $(grep -c "RCPT TO:" stdout) = 1 && > +       test $(grep -c "RCPT TO:" stdout) = 2 && > +       test $(grep -c "RCPT TO:" stdout) = 1 > +' > +