37 lines
1.2 KiB
Diff
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
|
|
|