Forráskód Böngészése

use stat with follow_symlinks=False

should be equivalent to using os.lstat() before.

(cherry picked from commit efec00b39cb9be6193c368f9c3c09cdc3a5811a9)
Thomas Waldmann 8 éve
szülő
commit
10b8cd9218
3 módosított fájl, 5 hozzáadás és 5 törlés
  1. 1 1
      borg/archive.py
  2. 2 2
      borg/archiver.py
  3. 2 2
      borg/testsuite/__init__.py

+ 1 - 1
borg/archive.py

@@ -381,7 +381,7 @@ Number of files: {0.stats.nfiles}'''.format(
         path = os.path.join(dest, item[b'path'])
         # Attempt to remove existing files, ignore errors on failure
         try:
-            st = os.lstat(path)
+            st = os.stat(path, follow_symlinks=False)
             if stat.S_ISDIR(st.st_mode):
                 os.rmdir(path)
             else:

+ 2 - 2
borg/archiver.py

@@ -293,7 +293,7 @@ class Archiver:
                 path = os.path.normpath(path)
                 if args.one_file_system:
                     try:
-                        restrict_dev = os.lstat(path).st_dev
+                        restrict_dev = os.stat(path, follow_symlinks=False).st_dev
                     except OSError as e:
                         self.print_warning('%s: %s', path, e)
                         continue
@@ -346,7 +346,7 @@ class Archiver:
 
         try:
             with backup_io():
-                st = os.lstat(path)
+                st = os.stat(path, follow_symlinks=False)
             if (st.st_ino, st.st_dev) in skip_inodes:
                 return
             # Entering a new filesystem?

+ 2 - 2
borg/testsuite/__init__.py

@@ -73,8 +73,8 @@ class BaseTestCase(unittest.TestCase):
         for filename in diff.common:
             path1 = os.path.join(diff.left, filename)
             path2 = os.path.join(diff.right, filename)
-            s1 = os.lstat(path1)
-            s2 = os.lstat(path2)
+            s1 = os.stat(path1, follow_symlinks=False)
+            s2 = os.stat(path2, follow_symlinks=False)
             # Assume path2 is on FUSE if st_dev is different
             fuse = s1.st_dev != s2.st_dev
             attrs = ['st_mode', 'st_uid', 'st_gid', 'st_rdev']