python-filelock/0001-BugFix-fix-permission-denied-error-when-lock-file-is.patch

37 lines
1.2 KiB
Diff

From 9a6437521131490a72e68813164885cecfd1232d Mon Sep 17 00:00:00 2001
From: kota-iizuka <64062831+kota-iizuka@users.noreply.github.com>
Date: Mon, 25 Mar 2024 23:24:53 +0900
Subject: [PATCH] [BugFix] fix permission denied error when lock file is placed
in `/tmp` (#317)
---
src/filelock/_unix.py | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/src/filelock/_unix.py b/src/filelock/_unix.py
index 4ee6033..4ae1fbe 100644
--- a/src/filelock/_unix.py
+++ b/src/filelock/_unix.py
@@ -4,6 +4,7 @@ import os
import sys
from contextlib import suppress
from errno import ENOSYS
+from pathlib import Path
from typing import cast
from ._api import BaseFileLock
@@ -35,7 +36,9 @@ else: # pragma: win32 no cover
def _acquire(self) -> None:
ensure_directory_exists(self.lock_file)
- open_flags = os.O_RDWR | os.O_CREAT | os.O_TRUNC
+ open_flags = os.O_RDWR | os.O_TRUNC
+ if not Path(self.lock_file).exists():
+ open_flags |= os.O_CREAT
fd = os.open(self.lock_file, open_flags, self._context.mode)
with suppress(PermissionError): # This locked is not owned by this UID
os.fchmod(fd, self._context.mode)
--
2.33.0