Merge pull request #3763 from AkihiroSuda/disable-mknod00-in-userns

apply: use naive applier when running in UserNS
This commit is contained in:
Phil Estes 2019-10-24 14:06:37 -04:00 committed by GitHub
commit c59561a08e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -26,12 +26,18 @@ import (
"github.com/containerd/containerd/archive" "github.com/containerd/containerd/archive"
"github.com/containerd/containerd/errdefs" "github.com/containerd/containerd/errdefs"
"github.com/containerd/containerd/mount" "github.com/containerd/containerd/mount"
"github.com/opencontainers/runc/libcontainer/system"
"github.com/pkg/errors" "github.com/pkg/errors"
) )
func apply(ctx context.Context, mounts []mount.Mount, r io.Reader) error { func apply(ctx context.Context, mounts []mount.Mount, r io.Reader) error {
switch { switch {
case len(mounts) == 1 && mounts[0].Type == "overlay": case len(mounts) == 1 && mounts[0].Type == "overlay":
// OverlayConvertWhiteout (mknod c 0 0) doesn't work in userns.
// https://github.com/containerd/containerd/issues/3762
if system.RunningInUserNS() {
break
}
path, parents, err := getOverlayPath(mounts[0].Options) path, parents, err := getOverlayPath(mounts[0].Options)
if err != nil { if err != nil {
if errdefs.IsInvalidArgument(err) { if errdefs.IsInvalidArgument(err) {