File transfer protocol: use O_NOFOLLOW when opening regular files

This commit is contained in:
Kovid Goyal
2026-06-03 06:18:31 +05:30
parent 9b89031a7f
commit 4aa4a5c056
2 changed files with 3 additions and 1 deletions

View File

@@ -188,6 +188,8 @@ Detailed list of changes
- When watching for changed config files do not recursively watch all sub directories of the directory containing the config file (:iss:`10102`)
- File transfer protocol: use O_NOFOLLOW when opening regular files
0.47.1 [2026-05-28]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

View File

@@ -547,7 +547,7 @@ class DestFile:
if self.actual_file is None:
self.make_parent_dirs()
self.unlink_existing_if_needed()
flags = os.O_RDWR | os.O_CREAT | os.O_TRUNC | getattr(os, 'O_CLOEXEC', 0) | getattr(os, 'O_BINARY', 0)
flags = os.O_RDWR | os.O_CREAT | os.O_TRUNC | getattr(os, 'O_CLOEXEC', 0) | getattr(os, 'O_BINARY', 0) | getattr(os, 'O_NOFOLLOW', 0)
self.actual_file = open(os.open(self.name, flags, self.permissions), mode='r+b', closefd=True)
af = self.actual_file
if decompressed or is_last: