Merge pull request #35424 from cyphar/tar-split-cve_2017_14992

vendor: update to github.com/vbatts/tar-split@v0.10.2
Upstream-commit: bd8ed57506a82a8ec3d69cd272ef8f5942c4b977
Component: engine
This commit is contained in:
Sebastiaan van Stijn
2017-11-07 23:09:38 +01:00
committed by GitHub
5 changed files with 81 additions and 17 deletions
@@ -0,0 +1,36 @@
package image
import (
"archive/tar"
"bytes"
"context"
"io"
"testing"
"github.com/docker/docker/api/types"
"github.com/docker/docker/integration/util/request"
"github.com/docker/docker/internal/testutil"
)
// Ensure we don't regress on CVE-2017-14992.
func TestImportExtremelyLargeImageWorks(t *testing.T) {
client := request.NewAPIClient(t)
// Construct an empty tar archive with about 8GB of junk padding at the
// end. This should not cause any crashes (the padding should be mostly
// ignored).
var tarBuffer bytes.Buffer
tw := tar.NewWriter(&tarBuffer)
if err := tw.Close(); err != nil {
t.Fatal(err)
}
imageRdr := io.MultiReader(&tarBuffer, io.LimitReader(testutil.DevZero, 8*1024*1024*1024))
_, err := client.ImageImport(context.Background(),
types.ImageImportSource{Source: imageRdr, SourceName: "-"},
"test1234:v42",
types.ImageImportOptions{})
if err != nil {
t.Fatal(err)
}
}