aboutsummaryrefslogtreecommitdiffstats
path: root/git-send-email.perl
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2023-05-17 14:10:39 -0700
committerJunio C Hamano <gitster@pobox.com>2023-05-17 14:11:38 -0700
commit3ece9bf0f9e24909b090cf348d89e8920bd4f82f (patch)
tree936a362a2fc1ca6e3ea3befdb2718ebf94d3b715 /git-send-email.perl
parenta8022c5f7b678189135b6caa3fadb3d8ec0c0d48 (diff)
downloadgit-3ece9bf0f9e24909b090cf348d89e8920bd4f82f.tar.gz
send-email: clear the $message_id after validation
Recently git-send-email started parsing the same message twice, once to validate _all_ the message before sending even the first one, and then after the validation hook is happy and each message gets sent, to read the contents to find out where to send to etc. Unfortunately, the effect of reading the messages for validation lingered even after the validation is done. Namely $message_id gets assigned if exists in the input files but the variable is global, and it is not cleared before pre_process_file runs. This causes reading a message without a message-id followed by reading a message with a message-id to misbehave---the sub reports as if the message had the same id as the previously written one. Clear the variable before starting to read the headers in pre_process_file. Tested-by: Douglas Anderson <dianders@chromium.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'git-send-email.perl')
-rwxr-xr-xgit-send-email.perl2
1 files changed, 2 insertions, 0 deletions
diff --git a/git-send-email.perl b/git-send-email.perl
index 10c450ef68..37dfd4b8c5 100755
--- a/git-send-email.perl
+++ b/git-send-email.perl
@@ -1768,6 +1768,8 @@ sub pre_process_file {
$subject = $initial_subject;
$message = "";
$message_num++;
+ undef $message_id;
+
# First unfold multiline header fields
while(<$fh>) {
last if /^\s*$/;