diff options
author | Alex Ionescu <aaionescu@protonmail.com> | 2023-02-17 04:29:32 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-02-17 08:59:32 +0530 |
commit | b25d6cb96337d479bdcb41768356da414c3aa835 (patch) | |
tree | f613c476785a488784ac8d3e20436304929f585e | |
parent | 361630015535026712bdb67f804a15b65ff9ee7e (diff) | |
download | hypervideo-pre-b25d6cb96337d479bdcb41768356da414c3aa835.tar.lz hypervideo-pre-b25d6cb96337d479bdcb41768356da414c3aa835.tar.xz hypervideo-pre-b25d6cb96337d479bdcb41768356da414c3aa835.zip |
[utils] Fix race condition in `make_dir` (#6089)
Authored by: aionescu
-rw-r--r-- | yt_dlp/cache.py | 6 | ||||
-rw-r--r-- | yt_dlp/utils.py | 4 |
2 files changed, 3 insertions, 7 deletions
diff --git a/yt_dlp/cache.py b/yt_dlp/cache.py index 7be91eae5..f8344fe77 100644 --- a/yt_dlp/cache.py +++ b/yt_dlp/cache.py @@ -39,11 +39,7 @@ class Cache: fn = self._get_cache_fn(section, key, dtype) try: - try: - os.makedirs(os.path.dirname(fn)) - except OSError as ose: - if ose.errno != errno.EEXIST: - raise + os.makedirs(os.path.dirname(fn), exist_ok=True) self._ydl.write_debug(f'Saving {section}.{key} to cache') write_json_file({'yt-dlp_version': __version__, 'data': data}, fn) except Exception: diff --git a/yt_dlp/utils.py b/yt_dlp/utils.py index 2d9e61c5b..736468aef 100644 --- a/yt_dlp/utils.py +++ b/yt_dlp/utils.py @@ -5370,8 +5370,8 @@ def random_uuidv4(): def make_dir(path, to_screen=None): try: dn = os.path.dirname(path) - if dn and not os.path.exists(dn): - os.makedirs(dn) + if dn: + os.makedirs(dn, exist_ok=True) return True except OSError as err: if callable(to_screen) is not None: |