Merged revisions 85774 via svnmerge from

svn+ssh://pythondev@svn.python.org/python/branches/py3k

........
  r85774 | brian.curtin | 2010-10-21 09:11:48 -0500 (Thu, 21 Oct 2010) | 7 lines

  Fix #10162: Add try/except around _winreg.OpenKey for keys that are
  unreadable by all users, e.g., Flash, Silverlight, and Java keys were
  causing errors.

  We don't currently have a way to grant/deny permissions for a key
  via winreg so there are no tests for this.
........
This commit is contained in:
Brian Curtin 2010-10-21 14:48:22 +00:00
parent 045bbcdc8e
commit 4cc5403527
2 changed files with 16 additions and 12 deletions

View File

@ -257,18 +257,19 @@ class MimeTypes:
with _winreg.OpenKey(_winreg.HKEY_CLASSES_ROOT, with _winreg.OpenKey(_winreg.HKEY_CLASSES_ROOT,
r'MIME\Database\Content Type') as mimedb: r'MIME\Database\Content Type') as mimedb:
for ctype in enum_types(mimedb): for ctype in enum_types(mimedb):
with _winreg.OpenKey(mimedb, ctype) as key: try:
try: with _winreg.OpenKey(mimedb, ctype) as key:
suffix, datatype = _winreg.QueryValueEx(key, 'Extension') suffix, datatype = _winreg.QueryValueEx(key,
except EnvironmentError: 'Extension')
continue except EnvironmentError:
if datatype != _winreg.REG_SZ: continue
continue if datatype != _winreg.REG_SZ:
try: continue
suffix = suffix.encode(default_encoding) # omit in 3.x! try:
except UnicodeEncodeError: suffix = suffix.encode(default_encoding) # omit in 3.x!
continue except UnicodeEncodeError:
self.add_type(ctype, suffix, strict) continue
self.add_type(ctype, suffix, strict)
def guess_type(url, strict=True): def guess_type(url, strict=True):

View File

@ -60,6 +60,9 @@ Core and Builtins
Library Library
------- -------
- Issue #10163: Skip unreadable registry keys during mimetypes
initialization.
- Issue #5117: Fixed root directory related issue on posixpath.relpath() and - Issue #5117: Fixed root directory related issue on posixpath.relpath() and
ntpath.relpath(). ntpath.relpath().