diff options
author | Konstantin Ryabitsev <konstantin@linuxfoundation.org> | 2023-10-16 16:29:23 -0400 |
---|---|---|
committer | Konstantin Ryabitsev <konstantin@linuxfoundation.org> | 2023-10-16 16:29:23 -0400 |
commit | 26615095533f901d9cbf9eb599f4dc5e305f5036 (patch) | |
tree | 1bc73b6f7b94c7bcfd4c893dcb9df958775b4c66 | |
parent | 0438c6a107d3475895281146e51d68069a41dc3d (diff) | |
download | b4-26615095533f901d9cbf9eb599f4dc5e305f5036.tar.gz |
trailers: do not quote names when special chars are present
When fixing potential email address rendering problems, we do not need
to be as stringent about the contents of the git trailer as when we are
dealing with actual email headers. For example, we do not need to quote
names containing things like commas or parentheses.
Reported-by: Matthew Wilcox <willy@infradead.org>
Fixes: 832010c4d50 ("trailers: normalize address after parsing")
Closes: https://bugzilla.kernel.org/show_bug.cgi?id=218017
Signed-off-by: Konstantin Ryabitsev <konstantin@linuxfoundation.org>
-rw-r--r-- | b4/__init__.py | 2 | ||||
-rw-r--r-- | tests/samples/trailers-followup-name-parens-ref-defaults.txt | 32 | ||||
-rw-r--r-- | tests/samples/trailers-followup-name-parens.mbox | 78 | ||||
-rw-r--r-- | tests/test___init__.py | 1 |
4 files changed, 112 insertions, 1 deletions
diff --git a/b4/__init__.py b/b4/__init__.py index e834af2..d39f5d6 100644 --- a/b4/__init__.py +++ b/b4/__init__.py @@ -905,7 +905,7 @@ class LoreTrailer: self.type = 'person' self.addr = email.utils.parseaddr(value) # Normalize the value with parsed data - self.value = format_addrs([self.addr]) + self.value = f'{self.addr[0]} <{self.addr[1]}>' else: self.type = 'unknown' self.lname = self.name.lower() diff --git a/tests/samples/trailers-followup-name-parens-ref-defaults.txt b/tests/samples/trailers-followup-name-parens-ref-defaults.txt new file mode 100644 index 0000000..06b8831 --- /dev/null +++ b/tests/samples/trailers-followup-name-parens-ref-defaults.txt @@ -0,0 +1,32 @@ +From git@z Thu Jan 1 00:00:00 1970 +Subject: [PATCH] Simple test +From: Test Test <test@example.com> +Date: Tue, 30 Aug 2022 11:19:07 -0400 +Message-Id: <orig-message@example.com> +MIME-Version: 1.0 +Content-Type: text/plain; charset="utf-8" +Content-Transfer-Encoding: 7bit + +Follow-up trailer collating test. + +Fixes: abcdef01234567890 +Reviewed-by: Original Reviewer <original-reviewer@example.com> +Link: https://msgid.link/some@msgid.here +Signed-off-by: Original Submitter <original-submitter@example.com> +Reviewed-by: Followup Reviewer1 (corporate) <followup-reviewer1@example.com> +Tested-by: Followup Reviewer2 <followup-reviewer2@example.com> + +diff --git a/b4/junk.py b/b4/junk.py +index 12345678..23456789 100644 +--- a/b4/junk.py ++++ b/b4/junk.py +@@@ -1,1 +1,1 @@ def junk(): + + +-junk1 ++junk2 + + +-- +2.wong.fu + diff --git a/tests/samples/trailers-followup-name-parens.mbox b/tests/samples/trailers-followup-name-parens.mbox new file mode 100644 index 0000000..0fe08d4 --- /dev/null +++ b/tests/samples/trailers-followup-name-parens.mbox @@ -0,0 +1,78 @@ +From foo@z Thu Jan 1 00:00:00 1970 +From: Test Test <test@example.com> +Subject: [PATCH] Simple test +To: Some List <list-1@lists.example.com> +Cc: Dev Eloper1 <dev-eloper1@example.com>, + Dev Eloper2 <dev-eloper2@example.com> +Date: Tue, 30 Aug 2022 11:19:07 -0400 +Message-Id: <orig-message@example.com> + +Follow-up trailer collating test. + +Fixes: abcdef01234567890 +Reviewed-by: Original Reviewer <original-reviewer@example.com> +Link: https://msgid.link/some@msgid.here +Signed-off-by: Original Submitter <original-submitter@example.com> +--- + +diff --git a/b4/junk.py b/b4/junk.py +index 12345678..23456789 100644 +--- a/b4/junk.py ++++ b/b4/junk.py +@@@ -1,1 +1,1 @@ def junk(): + + +-junk1 ++junk2 + + +-- +2.wong.fu + +From foo@z Thu Jan 1 00:00:00 1970 +From: Followup Reviewer1 <followup-reviewer1@example.com> +Subject: Re: [PATCH] Simple test +Date: Tue, 30 Aug 2022 11:19:07 -0400 +Message-Id: <fwup-message-1@example.com> +In-Reply-To: <orig-message@example.com> +References: <orig-message@example.com> + +> This is a simple trailer parsing test. + +Reviewed-by: Followup Reviewer1 (corporate) <followup-reviewer1@example.com> + +-- +My sig + +From foo@z Thu Jan 1 00:00:00 1970 +From: Followup Reviewer2 <followup-reviewer2@example.com> +Subject: Re: [PATCH] Simple test +Date: Tue, 30 Aug 2022 11:19:07 -0400 +Message-Id: <fwup-message-2@example.com> +In-Reply-To: <fwup-message-1@example.com> +References: <orig-message@example.com> <fwup-message-1@example.com> + +>> This is a simple trailer parsing test. +> +> Reviewed-by: Followup Reviewer1 <reviewer1@example.com> + +Tested-by: Followup Reviewer2 <followup-reviewer2@example.com> + +-- +My sig + +From foo@z Thu Jan 1 00:00:00 1970 +From: Mismatched Reviewer <mismatched-reviewer1@example.com> +Subject: Re: [PATCH] Simple test +Date: Tue, 30 Aug 2022 11:19:07 -0400 +Message-Id: <fwup-message-3@example.com> +In-Reply-To: <orig-message@example.com> +References: <orig-message@example.com> + +> This is a simple trailer parsing test. + +Reviewed-by: Mismatched Reviewer1 <mismatched-reviewer1@example.net> + +-- +My sig + diff --git a/tests/test___init__.py b/tests/test___init__.py index 223b61e..37d6bde 100644 --- a/tests/test___init__.py +++ b/tests/test___init__.py @@ -103,6 +103,7 @@ def test_parse_trailers(sampledir, source, expected): ('nore', {}, {}, 'defaults', {}), ('non-git-patch', {}, {}, 'defaults', {}), ('with-diffstat', {}, {}, 'defaults', {}), + ('name-parens', {}, {}, 'defaults', {}), ]) def test_followup_trailers(sampledir, source, serargs, amargs, reference, b4cfg): b4.MAIN_CONFIG.update(b4cfg) |