bpo-41043: Escape literal part of the path for glob(). (GH-20994)

This commit is contained in:
Serhiy Storchaka 2020-06-20 11:10:31 +03:00 committed by GitHub
parent a041e116db
commit 9355868458
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
24 changed files with 37 additions and 31 deletions

View file

@ -5,7 +5,7 @@ Implements the Distutils 'build_py' command."""
import os
import importlib.util
import sys
from glob import glob
import glob
from distutils.core import Command
from distutils.errors import *
@ -125,7 +125,7 @@ class build_py (Command):
files = []
for pattern in globs:
# Each pattern has to be converted to a platform-specific path
filelist = glob(os.path.join(src_dir, convert_path(pattern)))
filelist = glob.glob(os.path.join(glob.escape(src_dir), convert_path(pattern)))
# Files that match more than one pattern are only added once
files.extend([fn for fn in filelist if fn not in files
and os.path.isfile(fn)])
@ -216,7 +216,7 @@ class build_py (Command):
def find_package_modules(self, package, package_dir):
self.check_package(package, package_dir)
module_files = glob(os.path.join(package_dir, "*.py"))
module_files = glob.glob(os.path.join(glob.escape(package_dir), "*.py"))
modules = []
setup_script = os.path.abspath(self.distribution.script_name)