Headers can fail to decode: - if a part cannot be encoded as ascii - if the coding hint names a codec that doesn't exist - if there's a null byte in the codec name
Catch these errors. Signed-off-by: Daniel Axtens <d...@axtens.net> --- patchwork/parser.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/patchwork/parser.py b/patchwork/parser.py index 19ed7ca4e315..032af8a7be7c 100644 --- a/patchwork/parser.py +++ b/patchwork/parser.py @@ -90,9 +90,11 @@ def sanitise_header(header_contents, header_name=None): header = make_header(value, header_name=header_name, continuation_ws='\t') - except UnicodeDecodeError: - # At least one of the parts cannot be encoded as ascii. - # Find out which one and fix it somehow. + except (UnicodeDecodeError, LookupError, ValueError, TypeError): + # - a part cannot be encoded as ascii. (UnicodeDecodeError), or + # - we don't have a codec matching the hint (LookupError) + # - the codec has a null byte (Py3 ValueError/Py2 TypeError) + # Find out which part and fix it somehow. # # We get here under Py2 when there's non-7-bit chars in header, # or under Py2 or Py3 where decoding with the coding hint fails. -- 2.11.0 _______________________________________________ Patchwork mailing list Patchwork@lists.ozlabs.org https://lists.ozlabs.org/listinfo/patchwork