From ec359643a1f663c5283a81410f003f8dab60d46e Mon Sep 17 00:00:00 2001 From: Tobias Klauser Date: Thu, 31 Aug 2017 13:26:40 +0200 Subject: [PATCH] archive/tar: populate Devmajor and Devminor in FileInfoHeader on Darwin Extract device major/minor number on Darwin and set Devmajor and Devminor in FileInfoHeader. Code based on the Major/Minor functions for Darwin in golang.org/x/sys/unix. Change-Id: I51b65f607bfa2e6b177b8b66e2b246b771367b84 Reviewed-on: https://go-review.googlesource.com/60850 Reviewed-by: Joe Tsai Run-TryBot: Joe Tsai TryBot-Result: Gobot Gobot --- src/archive/tar/stat_unix.go | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/archive/tar/stat_unix.go b/src/archive/tar/stat_unix.go index aa6d82b1c6..ba7d83d24f 100644 --- a/src/archive/tar/stat_unix.go +++ b/src/archive/tar/stat_unix.go @@ -61,6 +61,11 @@ func statUnix(fi os.FileInfo, h *Header) error { minor := uint32((dev & 0x00000000000000ff) >> 0) minor |= uint32((dev & 0x00000ffffff00000) >> 12) h.Devmajor, h.Devminor = int64(major), int64(minor) + case "darwin": + // Copied from golang.org/x/sys/unix/dev_darwin.go. + major := uint32((dev >> 24) & 0xff) + minor := uint32(dev & 0xffffff) + h.Devmajor, h.Devminor = int64(major), int64(minor) default: // TODO: Implement others (see https://golang.org/issue/8106) } -- 2.50.0