]> arthur.barton.de Git - bup.git/commitdiff
vfs2.resolve: verify result is not a symlink
authorRob Browning <rlb@defaultvalue.org>
Sun, 3 Dec 2017 17:24:28 +0000 (11:24 -0600)
committerRob Browning <rlb@defaultvalue.org>
Sat, 16 Dec 2017 23:29:16 +0000 (17:29 -0600)
Signed-off-by: Rob Browning <rlb@defaultvalue.org>
Tested-by: Rob Browning <rlb@defaultvalue.org>
lib/bup/vfs2.py

index 4408885d294f9dfed9e07e254777bd3eaffc88e0..b74fc6ce58f8d575885aad17324b6a14001e42c4 100644 (file)
@@ -748,7 +748,6 @@ def lresolve(repo, path, parent=None, want_meta=True):
      return it in the result."""
     return _resolve_path(repo, path, parent=parent, want_meta=want_meta,
                          deref=False)
-                         
 
 def resolve(repo, path, parent=None, want_meta=True):
     """Follow the path in the virtual filesystem and return a tuple
@@ -791,5 +790,9 @@ def resolve(repo, path, parent=None, want_meta=True):
     needed, make a copy via item.meta.copy() and modify that instead.
 
     """
-    return _resolve_path(repo, path, parent=parent, want_meta=want_meta,
-                         deref=True)
+    result = _resolve_path(repo, path, parent=parent, want_meta=want_meta,
+                           deref=True)
+    _, leaf_item = result[-1]
+    if leaf_item:
+        assert not S_ISLNK(item_mode(leaf_item))
+    return result