]> git-server-git.apps.pok.os.sepia.ceph.com Git - teuthology.git/commitdiff
Handle derefernce of symlinks during tar
authorVasu Kulkarni <vasu@redhat.com>
Tue, 12 May 2020 03:08:23 +0000 (20:08 -0700)
committerrakeshgm <rakeshgm@redhat.com>
Mon, 27 Jul 2020 07:13:38 +0000 (12:43 +0530)
Signed-off-by: Vasu Kulkarni <vasu@redhat.com>
teuthology/misc.py

index 0ddd2e8368aa61ecd334329c2672bdc110ed54ae..b844402adf69079563fd94e2e9f4c734e821eab2 100644 (file)
@@ -762,7 +762,7 @@ def pull_directory(remote, remotedir, localdir):
     if not os.path.exists(localdir):
         os.mkdir(localdir)
     r = remote.get_tar_stream(remotedir, sudo=True)
-    tar = tarfile.open(mode='r|gz', fileobj=r.stdout)
+    tar = tarfile.open(mode='r|gz', fileobj=r.stdout, dereference=True)
     while True:
         ti = tar.next()
         if ti is None:
@@ -772,7 +772,7 @@ def pull_directory(remote, remotedir, localdir):
             # ignore silently; easier to just create leading dirs below
             # XXX this mean empty dirs are not transferred
             pass
-        elif ti.isfile():
+        elif ti.isfile() or ti.issym():
             sub = safepath.munge(ti.name)
             safepath.makedirs(root=localdir, path=os.path.dirname(sub))
             tar.makefile(ti, targetpath=os.path.join(localdir, sub))