diff --git a/linux/runtime.go b/linux/runtime.go index fdb11d37b..c9bd6e91d 100644 --- a/linux/runtime.go +++ b/linux/runtime.go @@ -111,6 +111,9 @@ func (r *Runtime) Create(ctx context.Context, id string, opts plugin.CreateOpts) Options: m.Options, }) } + if len(sopts.Rootfs) == 0 { + return nil, fmt.Errorf("no rootfs was specified for id %s", id) + } if _, err := s.Create(ctx, sopts); err != nil { os.RemoveAll(path) return nil, err diff --git a/linux/shim/init.go b/linux/shim/init.go index 039ccb606..9c2ffa2aa 100644 --- a/linux/shim/init.go +++ b/linux/shim/init.go @@ -11,6 +11,7 @@ import ( "syscall" "time" + "github.com/pkg/errors" "golang.org/x/sys/unix" "github.com/containerd/console" @@ -36,6 +37,9 @@ type initProcess struct { } func newInitProcess(context context.Context, path string, r *shimapi.CreateRequest) (*initProcess, error) { + if len(r.Rootfs) == 0 { + return nil, errors.New("no rootfs was specified") + } for _, rm := range r.Rootfs { m := &containerd.Mount{ Type: rm.Type,