Browse code

Fix files in subdirectories creating bad whiteout

Closes #23863

Signed-off-by: Derek McGowan <derek@mcgstyle.net> (github: dmcgowan)
(cherry picked from commit 1c0f6653ba82c933885719478e90c13f8d7e32b7)
Signed-off-by: Tibor Vass <tibor@docker.com>

Derek McGowan authored on 2016/07/27 03:57:09
Showing 1 changed files
... ...
@@ -23,7 +23,8 @@ func (overlayWhiteoutConverter) ConvertWrite(hdr *tar.Header, path string, fi os
23 23
 	// convert whiteouts to AUFS format
24 24
 	if fi.Mode()&os.ModeCharDevice != 0 && hdr.Devmajor == 0 && hdr.Devminor == 0 {
25 25
 		// we just rename the file and make it normal
26
-		hdr.Name = WhiteoutPrefix + hdr.Name
26
+		dir, filename := filepath.Split(hdr.Name)
27
+		hdr.Name = filepath.Join(dir, WhiteoutPrefix+filename)
27 28
 		hdr.Mode = 0600
28 29
 		hdr.Typeflag = tar.TypeReg
29 30
 		hdr.Size = 0