Fixed handling hardlinks to symlinks in tar stream

Signed-off-by: Iavael <iavaelooeyt@gmail.com>
This commit is contained in:
Iavael 2015-03-02 02:55:28 +03:00
parent 2a627ca2f7
commit b3060011bb
2 changed files with 42 additions and 2 deletions

View file

@ -435,6 +435,34 @@ func TestUntarInvalidFilenames(t *testing.T) {
}
}
func TestUntarHardlinkToSymlink(t *testing.T) {
for i, headers := range [][]*tar.Header{
{
{
Name: "symlink1",
Typeflag: tar.TypeSymlink,
Linkname: "regfile",
Mode: 0644,
},
{
Name: "symlink2",
Typeflag: tar.TypeLink,
Linkname: "symlink1",
Mode: 0644,
},
{
Name: "regfile",
Typeflag: tar.TypeReg,
Mode: 0644,
},
},
} {
if err := testBreakout("untar", "docker-TestUntarHardlinkToSymlink", headers); err != nil {
t.Fatalf("i=%d. %v", i, err)
}
}
}
func TestUntarInvalidHardlink(t *testing.T) {
for i, headers := range [][]*tar.Header{
{ // try reading victim/hello (../)