Open
Description
Bug report
Bug description:
During fuzzing of Python standard libraries, the following code snippet causes a TypeError with the following message: TypeError: '<' not supported between instances of 'NoneType' and 'int'
. This occurs in the decode_params
function at line 419 in email/utils.py
.
import sys
import io
import email
d = io.StringIO(open(sys.argv[1], "r").read())
email.message_from_file(d)
POC File:
https://github.com/FuturesLab/POC/blob/main/py-email/poc-02
Exception Trace
Traceback (most recent call last):
File "rep.py", line 5, in <module>
email.message_from_file(d)
File "/usr/lib/python3.12/email/__init__.py", line 53, in message_from_file
return Parser(*args, **kws).parse(fp)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/email/parser.py", line 54, in parse
return feedparser.close()
^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/email/feedparser.py", line 185, in close
self._call_parse()
File "/usr/lib/python3.12/email/feedparser.py", line 178, in _call_parse
self._parse()
File "/usr/lib/python3.12/email/feedparser.py", line 304, in _parsegen
boundary = self._cur.get_boundary()
^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/email/message.py", line 861, in get_boundary
boundary = self.get_param('boundary', missing)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/email/message.py", line 725, in get_param
for k, v in self._get_params_preserve(failobj, header):
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/email/message.py", line 674, in _get_params_preserve
params = utils.decode_params(params)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/email/utils.py", line 419, in decode_params
continuations.sort()
TypeError: '<' not supported between instances of 'NoneType' and 'int'
CPython versions tested on:
3.12, 3.11, 3.10, 3.9
Operating systems tested on:
Linux
Metadata
Metadata
Assignees
Labels
Python modules in the Lib dirPython modules in the Lib dirAn unexpected behavior, bug, or errorAn unexpected behavior, bug, or error