mirror of
https://github.com/containers/podman.git
synced 2025-08-02 01:09:21 +08:00
Bump github.com/containers/storage from 1.28.0 to 1.28.1
Bumps [github.com/containers/storage](https://github.com/containers/storage) from 1.28.0 to 1.28.1. - [Release notes](https://github.com/containers/storage/releases) - [Changelog](https://github.com/containers/storage/blob/master/docs/containers-storage-changes.md) - [Commits](https://github.com/containers/storage/compare/v1.28.0...v1.28.1) Signed-off-by: dependabot[bot] <support@github.com>
This commit is contained in:
2
go.mod
2
go.mod
@ -16,7 +16,7 @@ require (
|
|||||||
github.com/containers/image/v5 v5.10.5
|
github.com/containers/image/v5 v5.10.5
|
||||||
github.com/containers/ocicrypt v1.1.0
|
github.com/containers/ocicrypt v1.1.0
|
||||||
github.com/containers/psgo v1.5.2
|
github.com/containers/psgo v1.5.2
|
||||||
github.com/containers/storage v1.28.0
|
github.com/containers/storage v1.28.1
|
||||||
github.com/coreos/go-systemd/v22 v22.3.0
|
github.com/coreos/go-systemd/v22 v22.3.0
|
||||||
github.com/cri-o/ocicni v0.2.1-0.20210301205850-541cf7c703cf
|
github.com/cri-o/ocicni v0.2.1-0.20210301205850-541cf7c703cf
|
||||||
github.com/cyphar/filepath-securejoin v0.2.2
|
github.com/cyphar/filepath-securejoin v0.2.2
|
||||||
|
6
go.sum
6
go.sum
@ -199,8 +199,9 @@ github.com/containers/storage v1.23.5/go.mod h1:ha26Q6ngehFNhf3AWoXldvAvwI4jFe3E
|
|||||||
github.com/containers/storage v1.24.5/go.mod h1:YC+2pY8SkfEAcZkwycxYbpK8EiRbx5soPPwz9dxe4IQ=
|
github.com/containers/storage v1.24.5/go.mod h1:YC+2pY8SkfEAcZkwycxYbpK8EiRbx5soPPwz9dxe4IQ=
|
||||||
github.com/containers/storage v1.24.6/go.mod h1:YC+2pY8SkfEAcZkwycxYbpK8EiRbx5soPPwz9dxe4IQ=
|
github.com/containers/storage v1.24.6/go.mod h1:YC+2pY8SkfEAcZkwycxYbpK8EiRbx5soPPwz9dxe4IQ=
|
||||||
github.com/containers/storage v1.24.8/go.mod h1:YC+2pY8SkfEAcZkwycxYbpK8EiRbx5soPPwz9dxe4IQ=
|
github.com/containers/storage v1.24.8/go.mod h1:YC+2pY8SkfEAcZkwycxYbpK8EiRbx5soPPwz9dxe4IQ=
|
||||||
github.com/containers/storage v1.28.0 h1:lA/9i9BIjfmIRxCI8GuzasYHmU4IUXVcfZZiDceD0Eg=
|
|
||||||
github.com/containers/storage v1.28.0/go.mod h1:ixAwO7Bj31cigqPEG7aCz+PYmxkDxbIFdUFioYdxbzI=
|
github.com/containers/storage v1.28.0/go.mod h1:ixAwO7Bj31cigqPEG7aCz+PYmxkDxbIFdUFioYdxbzI=
|
||||||
|
github.com/containers/storage v1.28.1 h1:axYBD+c0N0YkHelDoqzdLQXfY3fgb8pqIMsRHqUNGts=
|
||||||
|
github.com/containers/storage v1.28.1/go.mod h1:5bwiMh2LkrN3AWIfDFMH7A/xbVNLcve+oeXYvHvW8cc=
|
||||||
github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk=
|
github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk=
|
||||||
github.com/coreos/etcd v3.3.13+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE=
|
github.com/coreos/etcd v3.3.13+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE=
|
||||||
github.com/coreos/go-iptables v0.4.5/go.mod h1:/mVI274lEDI2ns62jHCDnCyBF9Iwsmekav8Dbxlm1MU=
|
github.com/coreos/go-iptables v0.4.5/go.mod h1:/mVI274lEDI2ns62jHCDnCyBF9Iwsmekav8Dbxlm1MU=
|
||||||
@ -759,8 +760,9 @@ github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1
|
|||||||
github.com/u-root/u-root v7.0.0+incompatible/go.mod h1:RYkpo8pTHrNjW08opNd/U6p/RJE7K0D8fXO0d47+3YY=
|
github.com/u-root/u-root v7.0.0+incompatible/go.mod h1:RYkpo8pTHrNjW08opNd/U6p/RJE7K0D8fXO0d47+3YY=
|
||||||
github.com/uber/jaeger-client-go v2.25.0+incompatible h1:IxcNZ7WRY1Y3G4poYlx24szfsn/3LvK9QHCq9oQw8+U=
|
github.com/uber/jaeger-client-go v2.25.0+incompatible h1:IxcNZ7WRY1Y3G4poYlx24szfsn/3LvK9QHCq9oQw8+U=
|
||||||
github.com/uber/jaeger-client-go v2.25.0+incompatible/go.mod h1:WVhlPFC8FDjOFMMWRy2pZqQJSXxYSwNYOkTr/Z6d3Kk=
|
github.com/uber/jaeger-client-go v2.25.0+incompatible/go.mod h1:WVhlPFC8FDjOFMMWRy2pZqQJSXxYSwNYOkTr/Z6d3Kk=
|
||||||
github.com/ulikunitz/xz v0.5.9 h1:RsKRIA2MO8x56wkkcd3LbtcE/uMszhb6DpRf+3uwa3I=
|
|
||||||
github.com/ulikunitz/xz v0.5.9/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14=
|
github.com/ulikunitz/xz v0.5.9/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14=
|
||||||
|
github.com/ulikunitz/xz v0.5.10 h1:t92gobL9l3HE202wg3rlk19F6X+JOxl9BBrCCMYEYd8=
|
||||||
|
github.com/ulikunitz/xz v0.5.10/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14=
|
||||||
github.com/urfave/cli v0.0.0-20171014202726-7bc6a0acffa5/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA=
|
github.com/urfave/cli v0.0.0-20171014202726-7bc6a0acffa5/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA=
|
||||||
github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA=
|
github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA=
|
||||||
github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0=
|
github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0=
|
||||||
|
2
vendor/github.com/containers/storage/VERSION
generated
vendored
2
vendor/github.com/containers/storage/VERSION
generated
vendored
@ -1 +1 @@
|
|||||||
1.28.0
|
1.28.1
|
||||||
|
127
vendor/github.com/containers/storage/drivers/overlay/overlay.go
generated
vendored
127
vendor/github.com/containers/storage/drivers/overlay/overlay.go
generated
vendored
@ -30,7 +30,9 @@ import (
|
|||||||
"github.com/containers/storage/pkg/system"
|
"github.com/containers/storage/pkg/system"
|
||||||
"github.com/containers/storage/pkg/unshare"
|
"github.com/containers/storage/pkg/unshare"
|
||||||
units "github.com/docker/go-units"
|
units "github.com/docker/go-units"
|
||||||
|
"github.com/hashicorp/go-multierror"
|
||||||
rsystem "github.com/opencontainers/runc/libcontainer/system"
|
rsystem "github.com/opencontainers/runc/libcontainer/system"
|
||||||
|
"github.com/opencontainers/selinux/go-selinux"
|
||||||
"github.com/opencontainers/selinux/go-selinux/label"
|
"github.com/opencontainers/selinux/go-selinux/label"
|
||||||
"github.com/pkg/errors"
|
"github.com/pkg/errors"
|
||||||
"github.com/sirupsen/logrus"
|
"github.com/sirupsen/logrus"
|
||||||
@ -43,7 +45,10 @@ var (
|
|||||||
untar = chrootarchive.UntarUncompressed
|
untar = chrootarchive.UntarUncompressed
|
||||||
)
|
)
|
||||||
|
|
||||||
const defaultPerms = os.FileMode(0555)
|
const (
|
||||||
|
defaultPerms = os.FileMode(0555)
|
||||||
|
selinuxLabelTest = "system_u:object_r:container_file_t:s0"
|
||||||
|
)
|
||||||
|
|
||||||
// This backend uses the overlay union filesystem for containers
|
// This backend uses the overlay union filesystem for containers
|
||||||
// with diff directories for each layer.
|
// with diff directories for each layer.
|
||||||
@ -539,6 +544,12 @@ func supportsOverlay(home string, homeMagic graphdriver.FsMagic, rootUID, rootGI
|
|||||||
_ = idtools.MkdirAs(upperDir, 0700, rootUID, rootGID)
|
_ = idtools.MkdirAs(upperDir, 0700, rootUID, rootGID)
|
||||||
_ = idtools.MkdirAs(workDir, 0700, rootUID, rootGID)
|
_ = idtools.MkdirAs(workDir, 0700, rootUID, rootGID)
|
||||||
flags := fmt.Sprintf("lowerdir=%s:%s,upperdir=%s,workdir=%s", lower1Dir, lower2Dir, upperDir, workDir)
|
flags := fmt.Sprintf("lowerdir=%s:%s,upperdir=%s,workdir=%s", lower1Dir, lower2Dir, upperDir, workDir)
|
||||||
|
if selinux.GetEnabled() {
|
||||||
|
// Linux 5.11 introduced unprivileged overlay mounts but it has an issue
|
||||||
|
// when used together with selinux labels.
|
||||||
|
// Check that overlay supports selinux labels as well.
|
||||||
|
flags = label.FormatMountLabel(flags, selinuxLabelTest)
|
||||||
|
}
|
||||||
if len(flags) < unix.Getpagesize() {
|
if len(flags) < unix.Getpagesize() {
|
||||||
err := unix.Mount("overlay", mergedDir, "overlay", 0, flags)
|
err := unix.Mount("overlay", mergedDir, "overlay", 0, flags)
|
||||||
if err == nil {
|
if err == nil {
|
||||||
@ -548,6 +559,9 @@ func supportsOverlay(home string, homeMagic graphdriver.FsMagic, rootUID, rootGI
|
|||||||
logrus.Debugf("overlay test mount with multiple lowers failed %v", err)
|
logrus.Debugf("overlay test mount with multiple lowers failed %v", err)
|
||||||
}
|
}
|
||||||
flags = fmt.Sprintf("lowerdir=%s,upperdir=%s,workdir=%s", lower1Dir, upperDir, workDir)
|
flags = fmt.Sprintf("lowerdir=%s,upperdir=%s,workdir=%s", lower1Dir, upperDir, workDir)
|
||||||
|
if selinux.GetEnabled() {
|
||||||
|
flags = label.FormatMountLabel(flags, selinuxLabelTest)
|
||||||
|
}
|
||||||
if len(flags) < unix.Getpagesize() {
|
if len(flags) < unix.Getpagesize() {
|
||||||
err := unix.Mount("overlay", mergedDir, "overlay", 0, flags)
|
err := unix.Mount("overlay", mergedDir, "overlay", 0, flags)
|
||||||
if err == nil {
|
if err == nil {
|
||||||
@ -824,7 +838,17 @@ func (d *Driver) getLower(parent string) (string, error) {
|
|||||||
// Read Parent link fileA
|
// Read Parent link fileA
|
||||||
parentLink, err := ioutil.ReadFile(path.Join(parentDir, "link"))
|
parentLink, err := ioutil.ReadFile(path.Join(parentDir, "link"))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return "", err
|
if !os.IsNotExist(err) {
|
||||||
|
return "", err
|
||||||
|
}
|
||||||
|
logrus.Warnf("Can't read parent link %q because it does not exist. Going through storage to recreate the missing links.", path.Join(parentDir, "link"))
|
||||||
|
if err := d.recreateSymlinks(); err != nil {
|
||||||
|
return "", errors.Wrap(err, "error recreating the links")
|
||||||
|
}
|
||||||
|
parentLink, err = ioutil.ReadFile(path.Join(parentDir, "link"))
|
||||||
|
if err != nil {
|
||||||
|
return "", err
|
||||||
|
}
|
||||||
}
|
}
|
||||||
lowers := []string{path.Join(linkDir, string(parentLink))}
|
lowers := []string{path.Join(linkDir, string(parentLink))}
|
||||||
|
|
||||||
@ -946,6 +970,7 @@ func (d *Driver) recreateSymlinks() error {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("error reading driver home directory %q: %v", d.home, err)
|
return fmt.Errorf("error reading driver home directory %q: %v", d.home, err)
|
||||||
}
|
}
|
||||||
|
linksDir := filepath.Join(d.home, "l")
|
||||||
// This makes the link directory if it doesn't exist
|
// This makes the link directory if it doesn't exist
|
||||||
rootUID, rootGID, err := idtools.GetRootUIDGID(d.uidMaps, d.gidMaps)
|
rootUID, rootGID, err := idtools.GetRootUIDGID(d.uidMaps, d.gidMaps)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -954,28 +979,80 @@ func (d *Driver) recreateSymlinks() error {
|
|||||||
if err := idtools.MkdirAllAs(path.Join(d.home, linkDir), 0700, rootUID, rootGID); err != nil {
|
if err := idtools.MkdirAllAs(path.Join(d.home, linkDir), 0700, rootUID, rootGID); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
for _, dir := range dirs {
|
// Keep looping as long as we take some corrective action in each iteration
|
||||||
// Skip over the linkDir and anything that is not a directory
|
var errs *multierror.Error
|
||||||
if dir.Name() == linkDir || !dir.Mode().IsDir() {
|
madeProgress := true
|
||||||
|
for madeProgress {
|
||||||
|
errs = nil
|
||||||
|
madeProgress = false
|
||||||
|
// Check that for each layer, there's a link in "l" with the name in
|
||||||
|
// the layer's "link" file that points to the layer's "diff" directory.
|
||||||
|
for _, dir := range dirs {
|
||||||
|
// Skip over the linkDir and anything that is not a directory
|
||||||
|
if dir.Name() == linkDir || !dir.Mode().IsDir() {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
// Read the "link" file under each layer to get the name of the symlink
|
||||||
|
data, err := ioutil.ReadFile(path.Join(d.dir(dir.Name()), "link"))
|
||||||
|
if err != nil {
|
||||||
|
errs = multierror.Append(errs, errors.Wrapf(err, "error reading name of symlink for %q", dir))
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
linkPath := path.Join(d.home, linkDir, strings.Trim(string(data), "\n"))
|
||||||
|
// Check if the symlink exists, and if it doesn't, create it again with the
|
||||||
|
// name we got from the "link" file
|
||||||
|
_, err = os.Lstat(linkPath)
|
||||||
|
if err != nil && os.IsNotExist(err) {
|
||||||
|
if err := os.Symlink(path.Join("..", dir.Name(), "diff"), linkPath); err != nil {
|
||||||
|
errs = multierror.Append(errs, err)
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
madeProgress = true
|
||||||
|
} else if err != nil {
|
||||||
|
errs = multierror.Append(errs, errors.Wrapf(err, "error trying to stat %q", linkPath))
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// Now check if we somehow lost a "link" file, by making sure
|
||||||
|
// that each symlink we have corresponds to one.
|
||||||
|
links, err := ioutil.ReadDir(linksDir)
|
||||||
|
if err != nil {
|
||||||
|
errs = multierror.Append(errs, errors.Wrapf(err, "error reading links directory %q", linksDir))
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
// Read the "link" file under each layer to get the name of the symlink
|
// Go through all of the symlinks in the "l" directory
|
||||||
data, err := ioutil.ReadFile(path.Join(d.dir(dir.Name()), "link"))
|
for _, link := range links {
|
||||||
if err != nil {
|
// Read the symlink's target, which should be "../$layer/diff"
|
||||||
return fmt.Errorf("error reading name of symlink for %q: %v", dir, err)
|
target, err := os.Readlink(filepath.Join(linksDir, link.Name()))
|
||||||
}
|
if err != nil {
|
||||||
linkPath := path.Join(d.home, linkDir, strings.Trim(string(data), "\n"))
|
errs = multierror.Append(errs, errors.Wrapf(err, "error reading target of link %q", link))
|
||||||
// Check if the symlink exists, and if it doesn't create it again with the name we
|
continue
|
||||||
// got from the "link" file
|
}
|
||||||
_, err = os.Stat(linkPath)
|
targetComponents := strings.Split(target, string(os.PathSeparator))
|
||||||
if err != nil && os.IsNotExist(err) {
|
if len(targetComponents) != 3 || targetComponents[0] != ".." || targetComponents[2] != "diff" {
|
||||||
if err := os.Symlink(path.Join("..", dir.Name(), "diff"), linkPath); err != nil {
|
errs = multierror.Append(errs, errors.Errorf("link target of %q looks weird: %q", link, target))
|
||||||
return err
|
// force the link to be recreated on the next pass
|
||||||
|
os.Remove(filepath.Join(linksDir, link.Name()))
|
||||||
|
madeProgress = true
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
// Reconstruct the name of the target's link file and check that
|
||||||
|
// it has the basename of our symlink in it.
|
||||||
|
targetID := targetComponents[1]
|
||||||
|
linkFile := filepath.Join(d.dir(targetID), "link")
|
||||||
|
data, err := ioutil.ReadFile(linkFile)
|
||||||
|
if err != nil || string(data) != link.Name() {
|
||||||
|
if err := ioutil.WriteFile(linkFile, []byte(link.Name()), 0644); err != nil {
|
||||||
|
errs = multierror.Append(errs, errors.Wrapf(err, "error correcting link for layer %q", targetID))
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
madeProgress = true
|
||||||
}
|
}
|
||||||
} else if err != nil {
|
|
||||||
return fmt.Errorf("error trying to stat %q: %v", linkPath, err)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if errs != nil {
|
||||||
|
return errs.ErrorOrNil()
|
||||||
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1032,7 +1109,17 @@ func (d *Driver) get(id string, disableShifting bool, options graphdriver.MountO
|
|||||||
// lists that we're building. "diff" itself is the upper, so it won't be in the lists.
|
// lists that we're building. "diff" itself is the upper, so it won't be in the lists.
|
||||||
link, err := ioutil.ReadFile(path.Join(dir, "link"))
|
link, err := ioutil.ReadFile(path.Join(dir, "link"))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return "", err
|
if !os.IsNotExist(err) {
|
||||||
|
return "", err
|
||||||
|
}
|
||||||
|
logrus.Warnf("Can't read parent link %q because it does not exist. Going through storage to recreate the missing links.", path.Join(dir, "link"))
|
||||||
|
if err := d.recreateSymlinks(); err != nil {
|
||||||
|
return "", errors.Wrap(err, "error recreating the links")
|
||||||
|
}
|
||||||
|
link, err = ioutil.ReadFile(path.Join(dir, "link"))
|
||||||
|
if err != nil {
|
||||||
|
return "", err
|
||||||
|
}
|
||||||
}
|
}
|
||||||
diffN := 1
|
diffN := 1
|
||||||
perms := defaultPerms
|
perms := defaultPerms
|
||||||
|
1
vendor/github.com/containers/storage/go.mod
generated
vendored
1
vendor/github.com/containers/storage/go.mod
generated
vendored
@ -23,6 +23,7 @@ require (
|
|||||||
github.com/stretchr/testify v1.7.0
|
github.com/stretchr/testify v1.7.0
|
||||||
github.com/syndtr/gocapability v0.0.0-20200815063812-42c35b437635
|
github.com/syndtr/gocapability v0.0.0-20200815063812-42c35b437635
|
||||||
github.com/tchap/go-patricia v2.3.0+incompatible
|
github.com/tchap/go-patricia v2.3.0+incompatible
|
||||||
|
github.com/ulikunitz/xz v0.5.10
|
||||||
github.com/vbatts/tar-split v0.11.1
|
github.com/vbatts/tar-split v0.11.1
|
||||||
golang.org/x/net v0.0.0-20201224014010-6772e930b67b
|
golang.org/x/net v0.0.0-20201224014010-6772e930b67b
|
||||||
golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c
|
golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c
|
||||||
|
2
vendor/github.com/containers/storage/go.sum
generated
vendored
2
vendor/github.com/containers/storage/go.sum
generated
vendored
@ -476,6 +476,8 @@ github.com/tchap/go-patricia v2.3.0+incompatible h1:GkY4dP3cEfEASBPPkWd+AmjYxhmD
|
|||||||
github.com/tchap/go-patricia v2.3.0+incompatible/go.mod h1:bmLyhP68RS6kStMGxByiQ23RP/odRBOTVjwp2cDyi6I=
|
github.com/tchap/go-patricia v2.3.0+incompatible/go.mod h1:bmLyhP68RS6kStMGxByiQ23RP/odRBOTVjwp2cDyi6I=
|
||||||
github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U=
|
github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U=
|
||||||
github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U=
|
github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U=
|
||||||
|
github.com/ulikunitz/xz v0.5.10 h1:t92gobL9l3HE202wg3rlk19F6X+JOxl9BBrCCMYEYd8=
|
||||||
|
github.com/ulikunitz/xz v0.5.10/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14=
|
||||||
github.com/urfave/cli v0.0.0-20171014202726-7bc6a0acffa5/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA=
|
github.com/urfave/cli v0.0.0-20171014202726-7bc6a0acffa5/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA=
|
||||||
github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA=
|
github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA=
|
||||||
github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0=
|
github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0=
|
||||||
|
45
vendor/github.com/containers/storage/pkg/archive/archive.go
generated
vendored
45
vendor/github.com/containers/storage/pkg/archive/archive.go
generated
vendored
@ -9,7 +9,6 @@ import (
|
|||||||
"io"
|
"io"
|
||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
"os"
|
"os"
|
||||||
"os/exec"
|
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
"runtime"
|
"runtime"
|
||||||
"strings"
|
"strings"
|
||||||
@ -18,7 +17,6 @@ import (
|
|||||||
|
|
||||||
"github.com/containers/storage/pkg/fileutils"
|
"github.com/containers/storage/pkg/fileutils"
|
||||||
"github.com/containers/storage/pkg/idtools"
|
"github.com/containers/storage/pkg/idtools"
|
||||||
"github.com/containers/storage/pkg/ioutils"
|
|
||||||
"github.com/containers/storage/pkg/pools"
|
"github.com/containers/storage/pkg/pools"
|
||||||
"github.com/containers/storage/pkg/promise"
|
"github.com/containers/storage/pkg/promise"
|
||||||
"github.com/containers/storage/pkg/system"
|
"github.com/containers/storage/pkg/system"
|
||||||
@ -26,6 +24,7 @@ import (
|
|||||||
rsystem "github.com/opencontainers/runc/libcontainer/system"
|
rsystem "github.com/opencontainers/runc/libcontainer/system"
|
||||||
"github.com/pkg/errors"
|
"github.com/pkg/errors"
|
||||||
"github.com/sirupsen/logrus"
|
"github.com/sirupsen/logrus"
|
||||||
|
"github.com/ulikunitz/xz"
|
||||||
)
|
)
|
||||||
|
|
||||||
type (
|
type (
|
||||||
@ -173,12 +172,6 @@ func DetectCompression(source []byte) Compression {
|
|||||||
return Uncompressed
|
return Uncompressed
|
||||||
}
|
}
|
||||||
|
|
||||||
func xzDecompress(archive io.Reader) (io.ReadCloser, <-chan struct{}, error) {
|
|
||||||
args := []string{"xz", "-d", "-c", "-q"}
|
|
||||||
|
|
||||||
return cmdStream(exec.Command(args[0], args[1:]...), archive)
|
|
||||||
}
|
|
||||||
|
|
||||||
// DecompressStream decompresses the archive and returns a ReaderCloser with the decompressed archive.
|
// DecompressStream decompresses the archive and returns a ReaderCloser with the decompressed archive.
|
||||||
func DecompressStream(archive io.Reader) (io.ReadCloser, error) {
|
func DecompressStream(archive io.Reader) (io.ReadCloser, error) {
|
||||||
p := pools.BufioReader32KPool
|
p := pools.BufioReader32KPool
|
||||||
@ -211,15 +204,12 @@ func DecompressStream(archive io.Reader) (io.ReadCloser, error) {
|
|||||||
readBufWrapper := p.NewReadCloserWrapper(buf, bz2Reader)
|
readBufWrapper := p.NewReadCloserWrapper(buf, bz2Reader)
|
||||||
return readBufWrapper, nil
|
return readBufWrapper, nil
|
||||||
case Xz:
|
case Xz:
|
||||||
xzReader, chdone, err := xzDecompress(buf)
|
xzReader, err := xz.NewReader(buf)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
readBufWrapper := p.NewReadCloserWrapper(buf, xzReader)
|
readBufWrapper := p.NewReadCloserWrapper(buf, xzReader)
|
||||||
return ioutils.NewReadCloserWrapper(readBufWrapper, func() error {
|
return readBufWrapper, nil
|
||||||
<-chdone
|
|
||||||
return readBufWrapper.Close()
|
|
||||||
}), nil
|
|
||||||
case Zstd:
|
case Zstd:
|
||||||
return zstdReader(buf)
|
return zstdReader(buf)
|
||||||
default:
|
default:
|
||||||
@ -1319,35 +1309,6 @@ func remapIDs(readIDMappings, writeIDMappings *idtools.IDMappings, chownOpts *id
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// cmdStream executes a command, and returns its stdout as a stream.
|
|
||||||
// If the command fails to run or doesn't complete successfully, an error
|
|
||||||
// will be returned, including anything written on stderr.
|
|
||||||
func cmdStream(cmd *exec.Cmd, input io.Reader) (io.ReadCloser, <-chan struct{}, error) {
|
|
||||||
chdone := make(chan struct{})
|
|
||||||
cmd.Stdin = input
|
|
||||||
pipeR, pipeW := io.Pipe()
|
|
||||||
cmd.Stdout = pipeW
|
|
||||||
var errBuf bytes.Buffer
|
|
||||||
cmd.Stderr = &errBuf
|
|
||||||
|
|
||||||
// Run the command and return the pipe
|
|
||||||
if err := cmd.Start(); err != nil {
|
|
||||||
return nil, nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
// Copy stdout to the returned pipe
|
|
||||||
go func() {
|
|
||||||
if err := cmd.Wait(); err != nil {
|
|
||||||
pipeW.CloseWithError(fmt.Errorf("%s: %s", err, errBuf.String()))
|
|
||||||
} else {
|
|
||||||
pipeW.Close()
|
|
||||||
}
|
|
||||||
close(chdone)
|
|
||||||
}()
|
|
||||||
|
|
||||||
return pipeR, chdone, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewTempArchive reads the content of src into a temporary file, and returns the contents
|
// NewTempArchive reads the content of src into a temporary file, and returns the contents
|
||||||
// of that file as an archive. The archive can only be read once - as soon as reading completes,
|
// of that file as an archive. The archive can only be read once - as soon as reading completes,
|
||||||
// the file will be deleted.
|
// the file will be deleted.
|
||||||
|
2
vendor/github.com/ulikunitz/xz/LICENSE
generated
vendored
2
vendor/github.com/ulikunitz/xz/LICENSE
generated
vendored
@ -1,4 +1,4 @@
|
|||||||
Copyright (c) 2014-2020 Ulrich Kunitz
|
Copyright (c) 2014-2021 Ulrich Kunitz
|
||||||
All rights reserved.
|
All rights reserved.
|
||||||
|
|
||||||
Redistribution and use in source and binary forms, with or without
|
Redistribution and use in source and binary forms, with or without
|
||||||
|
8
vendor/github.com/ulikunitz/xz/TODO.md
generated
vendored
8
vendor/github.com/ulikunitz/xz/TODO.md
generated
vendored
@ -86,6 +86,14 @@
|
|||||||
|
|
||||||
## Log
|
## Log
|
||||||
|
|
||||||
|
### 2021-02-02
|
||||||
|
|
||||||
|
Mituo Heijo has fuzzed xz and found a bug in the function readIndexBody. The
|
||||||
|
function allocated a slice of records immediately after reading the value
|
||||||
|
without further checks. Since the number has been too large the make function
|
||||||
|
did panic. The fix is to check the number against the expected number of records
|
||||||
|
before allocating the records.
|
||||||
|
|
||||||
### 2020-12-17
|
### 2020-12-17
|
||||||
|
|
||||||
Release v0.5.9 fixes warnings, a typo and adds SECURITY.md.
|
Release v0.5.9 fixes warnings, a typo and adds SECURITY.md.
|
||||||
|
2
vendor/github.com/ulikunitz/xz/bits.go
generated
vendored
2
vendor/github.com/ulikunitz/xz/bits.go
generated
vendored
@ -1,4 +1,4 @@
|
|||||||
// Copyright 2014-2019 Ulrich Kunitz. All rights reserved.
|
// Copyright 2014-2021 Ulrich Kunitz. All rights reserved.
|
||||||
// Use of this source code is governed by a BSD-style
|
// Use of this source code is governed by a BSD-style
|
||||||
// license that can be found in the LICENSE file.
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
|
2
vendor/github.com/ulikunitz/xz/crc.go
generated
vendored
2
vendor/github.com/ulikunitz/xz/crc.go
generated
vendored
@ -1,4 +1,4 @@
|
|||||||
// Copyright 2014-2019 Ulrich Kunitz. All rights reserved.
|
// Copyright 2014-2021 Ulrich Kunitz. All rights reserved.
|
||||||
// Use of this source code is governed by a BSD-style
|
// Use of this source code is governed by a BSD-style
|
||||||
// license that can be found in the LICENSE file.
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
|
9
vendor/github.com/ulikunitz/xz/format.go
generated
vendored
9
vendor/github.com/ulikunitz/xz/format.go
generated
vendored
@ -1,4 +1,4 @@
|
|||||||
// Copyright 2014-2019 Ulrich Kunitz. All rights reserved.
|
// Copyright 2014-2021 Ulrich Kunitz. All rights reserved.
|
||||||
// Use of this source code is governed by a BSD-style
|
// Use of this source code is governed by a BSD-style
|
||||||
// license that can be found in the LICENSE file.
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
@ -662,7 +662,7 @@ func writeIndex(w io.Writer, index []record) (n int64, err error) {
|
|||||||
|
|
||||||
// readIndexBody reads the index from the reader. It assumes that the
|
// readIndexBody reads the index from the reader. It assumes that the
|
||||||
// index indicator has already been read.
|
// index indicator has already been read.
|
||||||
func readIndexBody(r io.Reader) (records []record, n int64, err error) {
|
func readIndexBody(r io.Reader, expectedRecordLen int) (records []record, n int64, err error) {
|
||||||
crc := crc32.NewIEEE()
|
crc := crc32.NewIEEE()
|
||||||
// index indicator
|
// index indicator
|
||||||
crc.Write([]byte{0})
|
crc.Write([]byte{0})
|
||||||
@ -679,6 +679,11 @@ func readIndexBody(r io.Reader) (records []record, n int64, err error) {
|
|||||||
if recLen < 0 || uint64(recLen) != u {
|
if recLen < 0 || uint64(recLen) != u {
|
||||||
return nil, n, errors.New("xz: record number overflow")
|
return nil, n, errors.New("xz: record number overflow")
|
||||||
}
|
}
|
||||||
|
if recLen != expectedRecordLen {
|
||||||
|
return nil, n, fmt.Errorf(
|
||||||
|
"xz: index length is %d; want %d",
|
||||||
|
recLen, expectedRecordLen)
|
||||||
|
}
|
||||||
|
|
||||||
// list of records
|
// list of records
|
||||||
records = make([]record, recLen)
|
records = make([]record, recLen)
|
||||||
|
2
vendor/github.com/ulikunitz/xz/internal/hash/cyclic_poly.go
generated
vendored
2
vendor/github.com/ulikunitz/xz/internal/hash/cyclic_poly.go
generated
vendored
@ -1,4 +1,4 @@
|
|||||||
// Copyright 2014-2019 Ulrich Kunitz. All rights reserved.
|
// Copyright 2014-2021 Ulrich Kunitz. All rights reserved.
|
||||||
// Use of this source code is governed by a BSD-style
|
// Use of this source code is governed by a BSD-style
|
||||||
// license that can be found in the LICENSE file.
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
|
2
vendor/github.com/ulikunitz/xz/internal/hash/doc.go
generated
vendored
2
vendor/github.com/ulikunitz/xz/internal/hash/doc.go
generated
vendored
@ -1,4 +1,4 @@
|
|||||||
// Copyright 2014-2019 Ulrich Kunitz. All rights reserved.
|
// Copyright 2014-2021 Ulrich Kunitz. All rights reserved.
|
||||||
// Use of this source code is governed by a BSD-style
|
// Use of this source code is governed by a BSD-style
|
||||||
// license that can be found in the LICENSE file.
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
|
2
vendor/github.com/ulikunitz/xz/internal/hash/rabin_karp.go
generated
vendored
2
vendor/github.com/ulikunitz/xz/internal/hash/rabin_karp.go
generated
vendored
@ -1,4 +1,4 @@
|
|||||||
// Copyright 2014-2019 Ulrich Kunitz. All rights reserved.
|
// Copyright 2014-2021 Ulrich Kunitz. All rights reserved.
|
||||||
// Use of this source code is governed by a BSD-style
|
// Use of this source code is governed by a BSD-style
|
||||||
// license that can be found in the LICENSE file.
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
|
2
vendor/github.com/ulikunitz/xz/internal/hash/roller.go
generated
vendored
2
vendor/github.com/ulikunitz/xz/internal/hash/roller.go
generated
vendored
@ -1,4 +1,4 @@
|
|||||||
// Copyright 2014-2019 Ulrich Kunitz. All rights reserved.
|
// Copyright 2014-2021 Ulrich Kunitz. All rights reserved.
|
||||||
// Use of this source code is governed by a BSD-style
|
// Use of this source code is governed by a BSD-style
|
||||||
// license that can be found in the LICENSE file.
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
|
2
vendor/github.com/ulikunitz/xz/internal/xlog/xlog.go
generated
vendored
2
vendor/github.com/ulikunitz/xz/internal/xlog/xlog.go
generated
vendored
@ -1,4 +1,4 @@
|
|||||||
// Copyright 2014-2019 Ulrich Kunitz. All rights reserved.
|
// Copyright 2014-2021 Ulrich Kunitz. All rights reserved.
|
||||||
// Use of this source code is governed by a BSD-style
|
// Use of this source code is governed by a BSD-style
|
||||||
// license that can be found in the LICENSE file.
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
|
2
vendor/github.com/ulikunitz/xz/lzma/bintree.go
generated
vendored
2
vendor/github.com/ulikunitz/xz/lzma/bintree.go
generated
vendored
@ -1,4 +1,4 @@
|
|||||||
// Copyright 2014-2019 Ulrich Kunitz. All rights reserved.
|
// Copyright 2014-2021 Ulrich Kunitz. All rights reserved.
|
||||||
// Use of this source code is governed by a BSD-style
|
// Use of this source code is governed by a BSD-style
|
||||||
// license that can be found in the LICENSE file.
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
|
2
vendor/github.com/ulikunitz/xz/lzma/bitops.go
generated
vendored
2
vendor/github.com/ulikunitz/xz/lzma/bitops.go
generated
vendored
@ -1,4 +1,4 @@
|
|||||||
// Copyright 2014-2019 Ulrich Kunitz. All rights reserved.
|
// Copyright 2014-2021 Ulrich Kunitz. All rights reserved.
|
||||||
// Use of this source code is governed by a BSD-style
|
// Use of this source code is governed by a BSD-style
|
||||||
// license that can be found in the LICENSE file.
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
|
2
vendor/github.com/ulikunitz/xz/lzma/breader.go
generated
vendored
2
vendor/github.com/ulikunitz/xz/lzma/breader.go
generated
vendored
@ -1,4 +1,4 @@
|
|||||||
// Copyright 2014-2019 Ulrich Kunitz. All rights reserved.
|
// Copyright 2014-2021 Ulrich Kunitz. All rights reserved.
|
||||||
// Use of this source code is governed by a BSD-style
|
// Use of this source code is governed by a BSD-style
|
||||||
// license that can be found in the LICENSE file.
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
|
2
vendor/github.com/ulikunitz/xz/lzma/buffer.go
generated
vendored
2
vendor/github.com/ulikunitz/xz/lzma/buffer.go
generated
vendored
@ -1,4 +1,4 @@
|
|||||||
// Copyright 2014-2019 Ulrich Kunitz. All rights reserved.
|
// Copyright 2014-2021 Ulrich Kunitz. All rights reserved.
|
||||||
// Use of this source code is governed by a BSD-style
|
// Use of this source code is governed by a BSD-style
|
||||||
// license that can be found in the LICENSE file.
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
|
2
vendor/github.com/ulikunitz/xz/lzma/bytewriter.go
generated
vendored
2
vendor/github.com/ulikunitz/xz/lzma/bytewriter.go
generated
vendored
@ -1,4 +1,4 @@
|
|||||||
// Copyright 2014-2019 Ulrich Kunitz. All rights reserved.
|
// Copyright 2014-2021 Ulrich Kunitz. All rights reserved.
|
||||||
// Use of this source code is governed by a BSD-style
|
// Use of this source code is governed by a BSD-style
|
||||||
// license that can be found in the LICENSE file.
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
|
2
vendor/github.com/ulikunitz/xz/lzma/decoder.go
generated
vendored
2
vendor/github.com/ulikunitz/xz/lzma/decoder.go
generated
vendored
@ -1,4 +1,4 @@
|
|||||||
// Copyright 2014-2019 Ulrich Kunitz. All rights reserved.
|
// Copyright 2014-2021 Ulrich Kunitz. All rights reserved.
|
||||||
// Use of this source code is governed by a BSD-style
|
// Use of this source code is governed by a BSD-style
|
||||||
// license that can be found in the LICENSE file.
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
|
2
vendor/github.com/ulikunitz/xz/lzma/decoderdict.go
generated
vendored
2
vendor/github.com/ulikunitz/xz/lzma/decoderdict.go
generated
vendored
@ -1,4 +1,4 @@
|
|||||||
// Copyright 2014-2019 Ulrich Kunitz. All rights reserved.
|
// Copyright 2014-2021 Ulrich Kunitz. All rights reserved.
|
||||||
// Use of this source code is governed by a BSD-style
|
// Use of this source code is governed by a BSD-style
|
||||||
// license that can be found in the LICENSE file.
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
|
2
vendor/github.com/ulikunitz/xz/lzma/directcodec.go
generated
vendored
2
vendor/github.com/ulikunitz/xz/lzma/directcodec.go
generated
vendored
@ -1,4 +1,4 @@
|
|||||||
// Copyright 2014-2019 Ulrich Kunitz. All rights reserved.
|
// Copyright 2014-2021 Ulrich Kunitz. All rights reserved.
|
||||||
// Use of this source code is governed by a BSD-style
|
// Use of this source code is governed by a BSD-style
|
||||||
// license that can be found in the LICENSE file.
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
|
2
vendor/github.com/ulikunitz/xz/lzma/distcodec.go
generated
vendored
2
vendor/github.com/ulikunitz/xz/lzma/distcodec.go
generated
vendored
@ -1,4 +1,4 @@
|
|||||||
// Copyright 2014-2019 Ulrich Kunitz. All rights reserved.
|
// Copyright 2014-2021 Ulrich Kunitz. All rights reserved.
|
||||||
// Use of this source code is governed by a BSD-style
|
// Use of this source code is governed by a BSD-style
|
||||||
// license that can be found in the LICENSE file.
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
|
2
vendor/github.com/ulikunitz/xz/lzma/encoder.go
generated
vendored
2
vendor/github.com/ulikunitz/xz/lzma/encoder.go
generated
vendored
@ -1,4 +1,4 @@
|
|||||||
// Copyright 2014-2019 Ulrich Kunitz. All rights reserved.
|
// Copyright 2014-2021 Ulrich Kunitz. All rights reserved.
|
||||||
// Use of this source code is governed by a BSD-style
|
// Use of this source code is governed by a BSD-style
|
||||||
// license that can be found in the LICENSE file.
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
|
2
vendor/github.com/ulikunitz/xz/lzma/encoderdict.go
generated
vendored
2
vendor/github.com/ulikunitz/xz/lzma/encoderdict.go
generated
vendored
@ -1,4 +1,4 @@
|
|||||||
// Copyright 2014-2019 Ulrich Kunitz. All rights reserved.
|
// Copyright 2014-2021 Ulrich Kunitz. All rights reserved.
|
||||||
// Use of this source code is governed by a BSD-style
|
// Use of this source code is governed by a BSD-style
|
||||||
// license that can be found in the LICENSE file.
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
|
2
vendor/github.com/ulikunitz/xz/lzma/hashtable.go
generated
vendored
2
vendor/github.com/ulikunitz/xz/lzma/hashtable.go
generated
vendored
@ -1,4 +1,4 @@
|
|||||||
// Copyright 2014-2019 Ulrich Kunitz. All rights reserved.
|
// Copyright 2014-2021 Ulrich Kunitz. All rights reserved.
|
||||||
// Use of this source code is governed by a BSD-style
|
// Use of this source code is governed by a BSD-style
|
||||||
// license that can be found in the LICENSE file.
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
|
2
vendor/github.com/ulikunitz/xz/lzma/header.go
generated
vendored
2
vendor/github.com/ulikunitz/xz/lzma/header.go
generated
vendored
@ -1,4 +1,4 @@
|
|||||||
// Copyright 2014-2019 Ulrich Kunitz. All rights reserved.
|
// Copyright 2014-2021 Ulrich Kunitz. All rights reserved.
|
||||||
// Use of this source code is governed by a BSD-style
|
// Use of this source code is governed by a BSD-style
|
||||||
// license that can be found in the LICENSE file.
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
|
2
vendor/github.com/ulikunitz/xz/lzma/header2.go
generated
vendored
2
vendor/github.com/ulikunitz/xz/lzma/header2.go
generated
vendored
@ -1,4 +1,4 @@
|
|||||||
// Copyright 2014-2019 Ulrich Kunitz. All rights reserved.
|
// Copyright 2014-2021 Ulrich Kunitz. All rights reserved.
|
||||||
// Use of this source code is governed by a BSD-style
|
// Use of this source code is governed by a BSD-style
|
||||||
// license that can be found in the LICENSE file.
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
|
2
vendor/github.com/ulikunitz/xz/lzma/lengthcodec.go
generated
vendored
2
vendor/github.com/ulikunitz/xz/lzma/lengthcodec.go
generated
vendored
@ -1,4 +1,4 @@
|
|||||||
// Copyright 2014-2019 Ulrich Kunitz. All rights reserved.
|
// Copyright 2014-2021 Ulrich Kunitz. All rights reserved.
|
||||||
// Use of this source code is governed by a BSD-style
|
// Use of this source code is governed by a BSD-style
|
||||||
// license that can be found in the LICENSE file.
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
|
2
vendor/github.com/ulikunitz/xz/lzma/literalcodec.go
generated
vendored
2
vendor/github.com/ulikunitz/xz/lzma/literalcodec.go
generated
vendored
@ -1,4 +1,4 @@
|
|||||||
// Copyright 2014-2019 Ulrich Kunitz. All rights reserved.
|
// Copyright 2014-2021 Ulrich Kunitz. All rights reserved.
|
||||||
// Use of this source code is governed by a BSD-style
|
// Use of this source code is governed by a BSD-style
|
||||||
// license that can be found in the LICENSE file.
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
|
2
vendor/github.com/ulikunitz/xz/lzma/matchalgorithm.go
generated
vendored
2
vendor/github.com/ulikunitz/xz/lzma/matchalgorithm.go
generated
vendored
@ -1,4 +1,4 @@
|
|||||||
// Copyright 2014-2019 Ulrich Kunitz. All rights reserved.
|
// Copyright 2014-2021 Ulrich Kunitz. All rights reserved.
|
||||||
// Use of this source code is governed by a BSD-style
|
// Use of this source code is governed by a BSD-style
|
||||||
// license that can be found in the LICENSE file.
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
|
2
vendor/github.com/ulikunitz/xz/lzma/operation.go
generated
vendored
2
vendor/github.com/ulikunitz/xz/lzma/operation.go
generated
vendored
@ -1,4 +1,4 @@
|
|||||||
// Copyright 2014-2019 Ulrich Kunitz. All rights reserved.
|
// Copyright 2014-2021 Ulrich Kunitz. All rights reserved.
|
||||||
// Use of this source code is governed by a BSD-style
|
// Use of this source code is governed by a BSD-style
|
||||||
// license that can be found in the LICENSE file.
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
|
2
vendor/github.com/ulikunitz/xz/lzma/prob.go
generated
vendored
2
vendor/github.com/ulikunitz/xz/lzma/prob.go
generated
vendored
@ -1,4 +1,4 @@
|
|||||||
// Copyright 2014-2019 Ulrich Kunitz. All rights reserved.
|
// Copyright 2014-2021 Ulrich Kunitz. All rights reserved.
|
||||||
// Use of this source code is governed by a BSD-style
|
// Use of this source code is governed by a BSD-style
|
||||||
// license that can be found in the LICENSE file.
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
|
2
vendor/github.com/ulikunitz/xz/lzma/properties.go
generated
vendored
2
vendor/github.com/ulikunitz/xz/lzma/properties.go
generated
vendored
@ -1,4 +1,4 @@
|
|||||||
// Copyright 2014-2019 Ulrich Kunitz. All rights reserved.
|
// Copyright 2014-2021 Ulrich Kunitz. All rights reserved.
|
||||||
// Use of this source code is governed by a BSD-style
|
// Use of this source code is governed by a BSD-style
|
||||||
// license that can be found in the LICENSE file.
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
|
2
vendor/github.com/ulikunitz/xz/lzma/rangecodec.go
generated
vendored
2
vendor/github.com/ulikunitz/xz/lzma/rangecodec.go
generated
vendored
@ -1,4 +1,4 @@
|
|||||||
// Copyright 2014-2019 Ulrich Kunitz. All rights reserved.
|
// Copyright 2014-2021 Ulrich Kunitz. All rights reserved.
|
||||||
// Use of this source code is governed by a BSD-style
|
// Use of this source code is governed by a BSD-style
|
||||||
// license that can be found in the LICENSE file.
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
|
2
vendor/github.com/ulikunitz/xz/lzma/reader.go
generated
vendored
2
vendor/github.com/ulikunitz/xz/lzma/reader.go
generated
vendored
@ -1,4 +1,4 @@
|
|||||||
// Copyright 2014-2019 Ulrich Kunitz. All rights reserved.
|
// Copyright 2014-2021 Ulrich Kunitz. All rights reserved.
|
||||||
// Use of this source code is governed by a BSD-style
|
// Use of this source code is governed by a BSD-style
|
||||||
// license that can be found in the LICENSE file.
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
|
2
vendor/github.com/ulikunitz/xz/lzma/reader2.go
generated
vendored
2
vendor/github.com/ulikunitz/xz/lzma/reader2.go
generated
vendored
@ -1,4 +1,4 @@
|
|||||||
// Copyright 2014-2019 Ulrich Kunitz. All rights reserved.
|
// Copyright 2014-2021 Ulrich Kunitz. All rights reserved.
|
||||||
// Use of this source code is governed by a BSD-style
|
// Use of this source code is governed by a BSD-style
|
||||||
// license that can be found in the LICENSE file.
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
|
2
vendor/github.com/ulikunitz/xz/lzma/state.go
generated
vendored
2
vendor/github.com/ulikunitz/xz/lzma/state.go
generated
vendored
@ -1,4 +1,4 @@
|
|||||||
// Copyright 2014-2019 Ulrich Kunitz. All rights reserved.
|
// Copyright 2014-2021 Ulrich Kunitz. All rights reserved.
|
||||||
// Use of this source code is governed by a BSD-style
|
// Use of this source code is governed by a BSD-style
|
||||||
// license that can be found in the LICENSE file.
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
|
2
vendor/github.com/ulikunitz/xz/lzma/treecodecs.go
generated
vendored
2
vendor/github.com/ulikunitz/xz/lzma/treecodecs.go
generated
vendored
@ -1,4 +1,4 @@
|
|||||||
// Copyright 2014-2019 Ulrich Kunitz. All rights reserved.
|
// Copyright 2014-2021 Ulrich Kunitz. All rights reserved.
|
||||||
// Use of this source code is governed by a BSD-style
|
// Use of this source code is governed by a BSD-style
|
||||||
// license that can be found in the LICENSE file.
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
|
2
vendor/github.com/ulikunitz/xz/lzma/writer.go
generated
vendored
2
vendor/github.com/ulikunitz/xz/lzma/writer.go
generated
vendored
@ -1,4 +1,4 @@
|
|||||||
// Copyright 2014-2019 Ulrich Kunitz. All rights reserved.
|
// Copyright 2014-2021 Ulrich Kunitz. All rights reserved.
|
||||||
// Use of this source code is governed by a BSD-style
|
// Use of this source code is governed by a BSD-style
|
||||||
// license that can be found in the LICENSE file.
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
|
2
vendor/github.com/ulikunitz/xz/lzma/writer2.go
generated
vendored
2
vendor/github.com/ulikunitz/xz/lzma/writer2.go
generated
vendored
@ -1,4 +1,4 @@
|
|||||||
// Copyright 2014-2019 Ulrich Kunitz. All rights reserved.
|
// Copyright 2014-2021 Ulrich Kunitz. All rights reserved.
|
||||||
// Use of this source code is governed by a BSD-style
|
// Use of this source code is governed by a BSD-style
|
||||||
// license that can be found in the LICENSE file.
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
|
2
vendor/github.com/ulikunitz/xz/lzmafilter.go
generated
vendored
2
vendor/github.com/ulikunitz/xz/lzmafilter.go
generated
vendored
@ -1,4 +1,4 @@
|
|||||||
// Copyright 2014-2019 Ulrich Kunitz. All rights reserved.
|
// Copyright 2014-2021 Ulrich Kunitz. All rights reserved.
|
||||||
// Use of this source code is governed by a BSD-style
|
// Use of this source code is governed by a BSD-style
|
||||||
// license that can be found in the LICENSE file.
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
|
2
vendor/github.com/ulikunitz/xz/none-check.go
generated
vendored
2
vendor/github.com/ulikunitz/xz/none-check.go
generated
vendored
@ -1,4 +1,4 @@
|
|||||||
// Copyright 2014-2019 Ulrich Kunitz. All rights reserved.
|
// Copyright 2014-2021 Ulrich Kunitz. All rights reserved.
|
||||||
// Use of this source code is governed by a BSD-style
|
// Use of this source code is governed by a BSD-style
|
||||||
// license that can be found in the LICENSE file.
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
|
9
vendor/github.com/ulikunitz/xz/reader.go
generated
vendored
9
vendor/github.com/ulikunitz/xz/reader.go
generated
vendored
@ -1,4 +1,4 @@
|
|||||||
// Copyright 2014-2019 Ulrich Kunitz. All rights reserved.
|
// Copyright 2014-2021 Ulrich Kunitz. All rights reserved.
|
||||||
// Use of this source code is governed by a BSD-style
|
// Use of this source code is governed by a BSD-style
|
||||||
// license that can be found in the LICENSE file.
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
@ -160,17 +160,14 @@ func (c ReaderConfig) newStreamReader(xz io.Reader) (r *streamReader, err error)
|
|||||||
|
|
||||||
// readTail reads the index body and the xz footer.
|
// readTail reads the index body and the xz footer.
|
||||||
func (r *streamReader) readTail() error {
|
func (r *streamReader) readTail() error {
|
||||||
index, n, err := readIndexBody(r.xz)
|
index, n, err := readIndexBody(r.xz, len(r.index))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if err == io.EOF {
|
if err == io.EOF {
|
||||||
err = io.ErrUnexpectedEOF
|
err = io.ErrUnexpectedEOF
|
||||||
}
|
}
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if len(index) != len(r.index) {
|
|
||||||
return fmt.Errorf("xz: index length is %d; want %d",
|
|
||||||
len(index), len(r.index))
|
|
||||||
}
|
|
||||||
for i, rec := range r.index {
|
for i, rec := range r.index {
|
||||||
if rec != index[i] {
|
if rec != index[i] {
|
||||||
return fmt.Errorf("xz: record %d is %v; want %v",
|
return fmt.Errorf("xz: record %d is %v; want %v",
|
||||||
|
2
vendor/github.com/ulikunitz/xz/writer.go
generated
vendored
2
vendor/github.com/ulikunitz/xz/writer.go
generated
vendored
@ -1,4 +1,4 @@
|
|||||||
// Copyright 2014-2019 Ulrich Kunitz. All rights reserved.
|
// Copyright 2014-2021 Ulrich Kunitz. All rights reserved.
|
||||||
// Use of this source code is governed by a BSD-style
|
// Use of this source code is governed by a BSD-style
|
||||||
// license that can be found in the LICENSE file.
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
|
4
vendor/modules.txt
vendored
4
vendor/modules.txt
vendored
@ -187,7 +187,7 @@ github.com/containers/psgo/internal/dev
|
|||||||
github.com/containers/psgo/internal/host
|
github.com/containers/psgo/internal/host
|
||||||
github.com/containers/psgo/internal/proc
|
github.com/containers/psgo/internal/proc
|
||||||
github.com/containers/psgo/internal/process
|
github.com/containers/psgo/internal/process
|
||||||
# github.com/containers/storage v1.28.0
|
# github.com/containers/storage v1.28.1
|
||||||
github.com/containers/storage
|
github.com/containers/storage
|
||||||
github.com/containers/storage/drivers
|
github.com/containers/storage/drivers
|
||||||
github.com/containers/storage/drivers/aufs
|
github.com/containers/storage/drivers/aufs
|
||||||
@ -558,7 +558,7 @@ github.com/uber/jaeger-client-go/thrift-gen/agent
|
|||||||
github.com/uber/jaeger-client-go/thrift-gen/jaeger
|
github.com/uber/jaeger-client-go/thrift-gen/jaeger
|
||||||
github.com/uber/jaeger-client-go/thrift-gen/zipkincore
|
github.com/uber/jaeger-client-go/thrift-gen/zipkincore
|
||||||
github.com/uber/jaeger-client-go/utils
|
github.com/uber/jaeger-client-go/utils
|
||||||
# github.com/ulikunitz/xz v0.5.9
|
# github.com/ulikunitz/xz v0.5.10
|
||||||
github.com/ulikunitz/xz
|
github.com/ulikunitz/xz
|
||||||
github.com/ulikunitz/xz/internal/hash
|
github.com/ulikunitz/xz/internal/hash
|
||||||
github.com/ulikunitz/xz/internal/xlog
|
github.com/ulikunitz/xz/internal/xlog
|
||||||
|
Reference in New Issue
Block a user