Skip to content

Commit b15b94d

Browse files
miss-islingtonoda-gitso
and
oda-gitso
authored
gh-93010: InvalidHeaderError used but nonexistent (GH-93015)
* fix issue 93010 Co-authored-by: blurb-it[bot] <43283697+blurb-it[bot]@users.noreply.github.com> (cherry picked from commit 71abeb0) Co-authored-by: oda-gitso <[email protected]>
1 parent c8f1095 commit b15b94d

File tree

3 files changed

+16
-9
lines changed

3 files changed

+16
-9
lines changed

Lib/email/_header_value_parser.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -2379,7 +2379,7 @@ def get_section(value):
23792379
digits += value[0]
23802380
value = value[1:]
23812381
if digits[0] == '0' and digits != '0':
2382-
section.defects.append(errors.InvalidHeaderError(
2382+
section.defects.append(errors.InvalidHeaderDefect(
23832383
"section number has an invalid leading 0"))
23842384
section.number = int(digits)
23852385
section.append(ValueTerminal(digits, 'digits'))

Lib/test/test_email/test_email.py

+14-8
Original file line numberDiff line numberDiff line change
@@ -18,24 +18,25 @@
1818
import email.policy
1919

2020
from email.charset import Charset
21-
from email.header import Header, decode_header, make_header
22-
from email.parser import Parser, HeaderParser
2321
from email.generator import Generator, DecodedGenerator, BytesGenerator
22+
from email.header import Header, decode_header, make_header
23+
from email.headerregistry import HeaderRegistry
2424
from email.message import Message
2525
from email.mime.application import MIMEApplication
2626
from email.mime.audio import MIMEAudio
27-
from email.mime.text import MIMEText
28-
from email.mime.image import MIMEImage
2927
from email.mime.base import MIMEBase
28+
from email.mime.image import MIMEImage
3029
from email.mime.message import MIMEMessage
3130
from email.mime.multipart import MIMEMultipart
3231
from email.mime.nonmultipart import MIMENonMultipart
33-
from email import utils
34-
from email import errors
32+
from email.mime.text import MIMEText
33+
from email.parser import Parser, HeaderParser
34+
from email import base64mime
3535
from email import encoders
36+
from email import errors
3637
from email import iterators
37-
from email import base64mime
3838
from email import quoprimime
39+
from email import utils
3940

4041
from test.support import threading_helper
4142
from test.support.os_helper import unlink
@@ -5508,7 +5509,12 @@ def test_long_headers_flatten(self):
55085509
result = fp.getvalue()
55095510
self._signed_parts_eq(original, result)
55105511

5511-
5512+
class TestHeaderRegistry(TestEmailBase):
5513+
# See issue gh-93010.
5514+
def test_HeaderRegistry(self):
5515+
reg = HeaderRegistry()
5516+
a = reg('Content-Disposition', 'attachment; 0*00="foo"')
5517+
self.assertIsInstance(a.defects[0], errors.InvalidHeaderDefect)
55125518

55135519
if __name__ == '__main__':
55145520
unittest.main()
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
In a very special case, the email package tried to append the nonexistent ``InvalidHeaderError`` to the defect list. It should have been ``InvalidHeaderDefect``.

0 commit comments

Comments
 (0)