From 13ef488529cd8c2c0adb759b9fec9c8ca7734d2a Mon Sep 17 00:00:00 2001 From: Simone Gotti Date: Wed, 3 Dec 2014 09:12:02 +0100 Subject: [PATCH] Fix creation of HardLinks. The LinkName of an hardlink is relative to the tar's root. --- pkg/tar/tar.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkg/tar/tar.go b/pkg/tar/tar.go index af2dc3c..3c3831d 100644 --- a/pkg/tar/tar.go +++ b/pkg/tar/tar.go @@ -43,11 +43,11 @@ func ExtractTar(tr *tar.Reader, dir string) error { return err } case typ == tar.TypeLink: - dest := filepath.Join(filepath.Dir(p), hdr.Linkname) + dest := filepath.Join(dir, hdr.Linkname) if !strings.HasPrefix(dest, dir) { return insecureLinkError(fmt.Errorf("insecure link %q -> %q", p, hdr.Linkname)) } - if err := os.Link(hdr.Linkname, p); err != nil { + if err := os.Link(dest, p); err != nil { return err } case typ == tar.TypeSymlink: