Skip to content
Snippets Groups Projects
Unverified Commit 4861fdaf authored by Serhiy Storchaka's avatar Serhiy Storchaka Committed by GitHub
Browse files

[3.9] bpo-44482: Fix very unlikely resource leak in glob in non-CPython...

[3.9] bpo-44482: Fix very unlikely resource leak in glob in non-CPython implementations (GH-26843). (GH-26916)

(cherry picked from commit 5c794025)
parent fe272b7a
Branches
Tags
No related merge requests found
"""Filename globbing utility."""
import contextlib
import os
import re
import fnmatch
......@@ -79,7 +80,7 @@ def _iglob(pathname, recursive, dironly):
# takes a literal basename (so it only has to check for its existence).
def _glob1(dirname, pattern, dironly):
names = list(_iterdir(dirname, dironly))
names = _listdir(dirname, dironly)
if not _ishidden(pattern):
names = (x for x in names if not _ishidden(x))
return fnmatch.filter(names, pattern)
......@@ -130,9 +131,13 @@ def _iterdir(dirname, dironly):
except OSError:
return
def _listdir(dirname, dironly):
with contextlib.closing(_iterdir(dirname, dironly)) as it:
return list(it)
# Recursively yields relative pathnames inside a literal directory.
def _rlistdir(dirname, dironly):
names = list(_iterdir(dirname, dironly))
names = _listdir(dirname, dironly)
for x in names:
if not _ishidden(x):
yield x
......
Fix very unlikely resource leak in :mod:`glob` in alternate Python
implementations.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment