aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKonstantin Ryabitsev <konstantin@linuxfoundation.org>2023-10-16 16:29:23 -0400
committerKonstantin Ryabitsev <konstantin@linuxfoundation.org>2023-10-16 16:29:23 -0400
commit26615095533f901d9cbf9eb599f4dc5e305f5036 (patch)
tree1bc73b6f7b94c7bcfd4c893dcb9df958775b4c66
parent0438c6a107d3475895281146e51d68069a41dc3d (diff)
downloadb4-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__.py2
-rw-r--r--tests/samples/trailers-followup-name-parens-ref-defaults.txt32
-rw-r--r--tests/samples/trailers-followup-name-parens.mbox78
-rw-r--r--tests/test___init__.py1
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)