Fix creation of HardLinks. The LinkName of an hardlink is relative to the tar's root.

This commit is contained in:
Simone Gotti
2014-12-03 12:16:55 +01:00
parent a9f914e34a
commit 13ef488529
+2 -2
View File
@@ -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: