Skip to content

Commit 5c3fa11

Browse files
Fix handling of empty strings in .get_dtext, .get_qp_ctext and .get_qcontent
1 parent 0a160bf commit 5c3fa11

File tree

2 files changed

+10
-0
lines changed

2 files changed

+10
-0
lines changed

Lib/email/_header_value_parser.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1024,6 +1024,7 @@ def _get_ptext_to_endchars(value, endchars):
10241024
vchars = []
10251025
escape = False
10261026
had_qp = False
1027+
pos = 0
10271028
for pos in range(len(fragment)):
10281029
if fragment[pos] == '\\':
10291030
if escape:

Lib/test/test_email/test__header_value_parser.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -463,6 +463,9 @@ def test_get_qp_ctext_non_printables(self):
463463
[errors.NonPrintableDefect], ')')
464464
self.assertEqual(ptext.defects[0].non_printables[0], '\x00')
465465

466+
def test_get_qp_ctext_empty(self):
467+
self._test_get_x(parser.get_qp_ctext, '', '', ' ', [], '')
468+
466469
# get_qcontent
467470

468471
def test_get_qcontent_only(self):
@@ -503,6 +506,9 @@ def test_get_qcontent_non_printables(self):
503506
[errors.NonPrintableDefect], '"')
504507
self.assertEqual(ptext.defects[0].non_printables[0], '\x00')
505508

509+
def test_get_qcontent_empty(self):
510+
self._test_get_x(parser.get_qcontent, '', '', '', [], '')
511+
506512
# get_atext
507513

508514
def test_get_atext_only(self):
@@ -1283,6 +1289,9 @@ def test_get_dtext_open_bracket_mid_word(self):
12831289
self._test_get_x(parser.get_dtext,
12841290
'foo[bar', 'foo', 'foo', [], '[bar')
12851291

1292+
def test_get_dtext_empty(self):
1293+
self._test_get_x(parser.get_dtext, '', '', '', [], '')
1294+
12861295
# get_domain_literal
12871296

12881297
def test_get_domain_literal_only(self):

0 commit comments

Comments
 (0)