Skip to content
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 5 additions & 4 deletions spec.go
Original file line number Diff line number Diff line change
Expand Up @@ -320,11 +320,12 @@ func loadSpec(cPath, rPath string) (spec *specs.LinuxSpec, rspec *specs.LinuxRun
return spec, rspec, checkSpecVersion(spec)
}

// checkSpecVersion makes sure that the spec version matches runc's while we are in the initial
// development period. It is better to hard fail than have missing fields or options in the spec.
// checkSpecVersion makes sure that the spec version specified in config.json is
// not ahead of runc's version. It is better to hard fail than have missing
// fields or options in the spec.
func checkSpecVersion(s *specs.LinuxSpec) error {
if s.Version != specs.Version {
return fmt.Errorf("spec version is not compatible with implemented version %q: spec %q", specs.Version, s.Version)
if s.Version > specs.Version {
return fmt.Errorf("spec requires a container implementation of %q or higher, current version is %q", s.Version, specs.Version)
}
return nil
}
Expand Down