Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 284df7f

Browse files
committed
Truncate windows registry entries after null byte.
1 parent 8bc197a commit 284df7f

File tree

1 file changed

+5
-2
lines changed

1 file changed

+5
-2
lines changed

lib/matplotlib/font_manager.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -226,15 +226,18 @@ def win32InstalledFonts(directory=None, fontext='ttf'):
226226
local = winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE, fontdir)
227227
except OSError:
228228
continue
229-
230229
if not local:
231230
return list_fonts(directory, fontext)
232231
try:
233232
for j in range(winreg.QueryInfoKey(local)[1]):
234233
try:
235-
key, direc, any = winreg.EnumValue( local, j)
234+
key, direc, tp = winreg.EnumValue(local, j)
236235
if not isinstance(direc, six.string_types):
237236
continue
237+
# winreg apparently sometimes reports a string that goes
238+
# beyond a null byte; it looks like truncating at the null
239+
# byte is correct.
240+
direc = direc.split("\0", 1)[0]
238241
if not os.path.dirname(direc):
239242
direc = os.path.join(directory, direc)
240243
direc = os.path.abspath(direc).lower()

0 commit comments

Comments
 (0)