New submission from And Clover <a...@doxdesk.com>:

The `enum_types` function in `MimeTypes.read_windows_registry` tries to 
`.encode` the results of `EnumKey`, assuming it to be a Unicode string.

However, `_winreg.EnumKey` in Python 2.x actually returns a byte string 
(straight from the ANSI version of the registry interface). Consequently, if 
there is a MIME type registered with a non-ASCII character in its name 
(invalid, but not unheard of), initialising `MimeTypes` will raise a 
`UnicodeDecodeError`. This is not caught (it is only expecting a 
`UnicodeEncodeError`), so it bombs out whatever module indirectly caused 
`mimetypes.init()` to be called.

This attempt to `.encode` the `ctype` should simply be removed.

----------
components: Library (Lib)
files: mimetypes-patch2-2.7.patch
keywords: patch
messages: 121929
nosy: aclover
priority: normal
severity: normal
status: open
title: mimetypes read_windows_registry fails for non-ASCII keys
versions: Python 2.7
Added file: http://bugs.python.org/file19745/mimetypes-patch2-2.7.patch

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue10490>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to