[issue35985] Folding tries to slice from 0 to float("+inf") when maxlength is 0

Lukas J report at bugs.python.org
Wed Feb 13 07:08:03 EST 2019


New submission from Lukas J <postbotenamt at gmail.com>:

When converting an email.message.Message with the policy set to email.policy.EmailPolicy with all default settings, I eventually end up with this exception:



  File "/usr/lib/python3.7/email/_header_value_parser.py", line 2727, in _fold_as_ew
    first_part = to_encode[:text_space]
TypeError: slice indices must be integers or None or have an __index__ method



Which is caused because text_space is a float of value +inf. This is set  on line 2594 of the same file: maxlen = policy.max_line_length or float("+inf")

For some reason policy.max_line_length is set to zero, even though the default should be 78 after a glance into the source.


So there's maybe even two issues: 

1.) The fallback for maxlen shouldn't be float("+inf"), as that is not an integer and thus can't be sliced by. I think a big integer would suffice instead, for example 100000000

2.) policy.max_line_length seems to lose it's value in the default settings somewhere along the way if it isn't explicitly set.


Current workaround:
Set max_line_length of the policy to a value (78 is default)

----------
components: email
messages: 335424
nosy: Lukas J, barry, r.david.murray
priority: normal
severity: normal
status: open
title: Folding tries to slice from 0 to float("+inf") when maxlength is 0
versions: Python 3.7

_______________________________________
Python tracker <report at bugs.python.org>
<https://bugs.python.org/issue35985>
_______________________________________


More information about the Python-bugs-list mailing list