aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAntoine Pitrou <solipsis@pitrou.net>2012-12-16 13:54:14 +0100
committerAntoine Pitrou <solipsis@pitrou.net>2012-12-16 13:54:14 +0100
commit39a6ee20ac5f353a6b8204864d9491deb997ef88 (patch)
tree976c0abc2e1a9edf4c55f65bd913739d8f10ef79 /Lib/glob.py
parentFixup abc.ABC wording and add versionadded. (diff)
parentIssue #16626: Fix infinite recursion in glob.glob() on Windows when the patte... (diff)
downloadcpython-39a6ee20ac5f353a6b8204864d9491deb997ef88.tar.gz
cpython-39a6ee20ac5f353a6b8204864d9491deb997ef88.tar.bz2
cpython-39a6ee20ac5f353a6b8204864d9491deb997ef88.zip
Issue #16626: Fix infinite recursion in glob.glob() on Windows when the pattern contains a wildcard in the drive or UNC path.
Patch by Serhiy Storchaka.
Diffstat (limited to 'Lib/glob.py')
-rw-r--r--Lib/glob.py5
1 files changed, 4 insertions, 1 deletions
diff --git a/Lib/glob.py b/Lib/glob.py
index 3431a695bbe..00f867f8ad4 100644
--- a/Lib/glob.py
+++ b/Lib/glob.py
@@ -28,7 +28,10 @@ def iglob(pathname):
if not dirname:
yield from glob1(None, basename)
return
- if has_magic(dirname):
+ # `os.path.split()` returns the argument itself as a dirname if it is a
+ # drive or UNC path. Prevent an infinite recursion if a drive or UNC path
+ # contains magic characters (i.e. r'\\?\C:').
+ if dirname != pathname and has_magic(dirname):
dirs = iglob(dirname)
else:
dirs = [dirname]