From: Vincent Batts Date: Mon, 3 Aug 2015 16:26:38 +0000 (-0400) Subject: archive/tar: don't treat multiple file system links as a tar hardlink X-Git-Tag: go1.5rc1~39 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=a1d093d95dfb888e55f960943bd3ad3d181ec743;p=gostls13.git archive/tar: don't treat multiple file system links as a tar hardlink Do not assume that if stat shows multiple links that we should mark the file as a hardlink in the tar format. If the hardlink link was not referenced, this caused a link to "/". On an overlay file system, all files have multiple links. The caller must keep the inode references and set TypeLink, Size = 0, and LinkName themselves. Change-Id: I873b8a235bc8f8fbb271db74ee54232da36ca013 Reviewed-on: https://go-review.googlesource.com/13045 Reviewed-by: Ian Lance Taylor --- diff --git a/src/archive/tar/stat_unix.go b/src/archive/tar/stat_unix.go index 27d112f665..cb843db4cf 100644 --- a/src/archive/tar/stat_unix.go +++ b/src/archive/tar/stat_unix.go @@ -28,10 +28,5 @@ func statUnix(fi os.FileInfo, h *Header) error { h.AccessTime = statAtime(sys) h.ChangeTime = statCtime(sys) // TODO(bradfitz): major/minor device numbers? - if fi.Mode().IsRegular() && sys.Nlink > 1 { - h.Typeflag = TypeLink - h.Size = 0 - // TODO(vbatts): Linkname? - } return nil }