|
@@ -99,3 +99,29 @@ func TestChrootApplyEmptyArchiveFromSlowReader(t *testing.T) {
|
|
|
t.Fatal(err)
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+func TestChrootApplyDotDotFile(t *testing.T) {
|
|
|
+ tmpdir, err := ioutil.TempDir("", "docker-TestChrootApplyDotDotFile")
|
|
|
+ if err != nil {
|
|
|
+ t.Fatal(err)
|
|
|
+ }
|
|
|
+ defer os.RemoveAll(tmpdir)
|
|
|
+ src := filepath.Join(tmpdir, "src")
|
|
|
+ if err := os.MkdirAll(src, 0700); err != nil {
|
|
|
+ t.Fatal(err)
|
|
|
+ }
|
|
|
+ if err := ioutil.WriteFile(filepath.Join(src, "..gitme"), []byte(""), 0644); err != nil {
|
|
|
+ t.Fatal(err)
|
|
|
+ }
|
|
|
+ stream, err := archive.Tar(src, archive.Uncompressed)
|
|
|
+ if err != nil {
|
|
|
+ t.Fatal(err)
|
|
|
+ }
|
|
|
+ dest := filepath.Join(tmpdir, "dest")
|
|
|
+ if err := os.MkdirAll(dest, 0700); err != nil {
|
|
|
+ t.Fatal(err)
|
|
|
+ }
|
|
|
+ if _, err := ApplyLayer(dest, stream); err != nil {
|
|
|
+ t.Fatal(err)
|
|
|
+ }
|
|
|
+}
|