Skip to content

Commit 6df2639

Browse files
authored
Merge pull request #535 from q384566678/dle-validate
validate: remove duplicate verification
2 parents d1751c1 + 0d75257 commit 6df2639

1 file changed

Lines changed: 2 additions & 101 deletions

File tree

validate/validate.go

Lines changed: 2 additions & 101 deletions
Original file line numberDiff line numberDiff line change
@@ -609,8 +609,8 @@ func (v *Validator) CheckLinux() (errs error) {
609609

610610
for index := 0; index < len(v.spec.Linux.Namespaces); index++ {
611611
ns := v.spec.Linux.Namespaces[index]
612-
if !v.namespaceValid(ns) {
613-
errs = multierror.Append(errs, fmt.Errorf("namespace %v is invalid", ns))
612+
if ns.Path != "" && !osFilepath.IsAbs(v.platform, ns.Path) {
613+
errs = multierror.Append(errs, specerror.NewError(specerror.NSPathAbs, fmt.Errorf("namespace.path %q is not an absolute path", ns.Path), rspec.Version))
614614
}
615615

616616
tmpItem := nsTypeList[ns.Type]
@@ -746,10 +746,6 @@ func (v *Validator) CheckLinux() (errs error) {
746746
errs = multierror.Append(errs, v.CheckLinuxResources())
747747
}
748748

749-
if v.spec.Linux.Seccomp != nil {
750-
errs = multierror.Append(errs, v.CheckSeccomp())
751-
}
752-
753749
for _, maskedPath := range v.spec.Linux.MaskedPaths {
754750
if !strings.HasPrefix(maskedPath, "/") {
755751
errs = multierror.Append(errs,
@@ -827,47 +823,6 @@ func (v *Validator) CheckLinuxResources() (errs error) {
827823
return
828824
}
829825

830-
// CheckSeccomp checkc v.spec.Linux.Seccomp
831-
func (v *Validator) CheckSeccomp() (errs error) {
832-
logrus.Debugf("check linux seccomp")
833-
834-
s := v.spec.Linux.Seccomp
835-
if !seccompActionValid(s.DefaultAction) {
836-
errs = multierror.Append(errs, fmt.Errorf("seccomp defaultAction %q is invalid", s.DefaultAction))
837-
}
838-
for index := 0; index < len(s.Syscalls); index++ {
839-
if !syscallValid(s.Syscalls[index]) {
840-
errs = multierror.Append(errs, fmt.Errorf("syscall %v is invalid", s.Syscalls[index]))
841-
}
842-
}
843-
for index := 0; index < len(s.Architectures); index++ {
844-
switch s.Architectures[index] {
845-
case rspec.ArchX86:
846-
case rspec.ArchX86_64:
847-
case rspec.ArchX32:
848-
case rspec.ArchARM:
849-
case rspec.ArchAARCH64:
850-
case rspec.ArchMIPS:
851-
case rspec.ArchMIPS64:
852-
case rspec.ArchMIPS64N32:
853-
case rspec.ArchMIPSEL:
854-
case rspec.ArchMIPSEL64:
855-
case rspec.ArchMIPSEL64N32:
856-
case rspec.ArchPPC:
857-
case rspec.ArchPPC64:
858-
case rspec.ArchPPC64LE:
859-
case rspec.ArchS390:
860-
case rspec.ArchS390X:
861-
case rspec.ArchPARISC:
862-
case rspec.ArchPARISC64:
863-
default:
864-
errs = multierror.Append(errs, fmt.Errorf("seccomp architecture %q is invalid", s.Architectures[index]))
865-
}
866-
}
867-
868-
return
869-
}
870-
871826
// CapValid checks whether a capability is valid
872827
func CapValid(c string, hostSpecific bool) error {
873828
isValid := false
@@ -944,26 +899,6 @@ func (v *Validator) rlimitValid(rlimit rspec.POSIXRlimit) (errs error) {
944899
return
945900
}
946901

947-
func (v *Validator) namespaceValid(ns rspec.LinuxNamespace) bool {
948-
switch ns.Type {
949-
case rspec.PIDNamespace:
950-
case rspec.NetworkNamespace:
951-
case rspec.MountNamespace:
952-
case rspec.IPCNamespace:
953-
case rspec.UTSNamespace:
954-
case rspec.UserNamespace:
955-
case rspec.CgroupNamespace:
956-
default:
957-
return false
958-
}
959-
960-
if ns.Path != "" && !osFilepath.IsAbs(v.platform, ns.Path) {
961-
return false
962-
}
963-
964-
return true
965-
}
966-
967902
func deviceValid(d rspec.LinuxDevice) bool {
968903
switch d.Type {
969904
case "b", "c", "u":
@@ -980,40 +915,6 @@ func deviceValid(d rspec.LinuxDevice) bool {
980915
return true
981916
}
982917

983-
func seccompActionValid(secc rspec.LinuxSeccompAction) bool {
984-
switch secc {
985-
case rspec.ActKill:
986-
case rspec.ActTrap:
987-
case rspec.ActErrno:
988-
case rspec.ActTrace:
989-
case rspec.ActAllow:
990-
default:
991-
return false
992-
}
993-
return true
994-
}
995-
996-
func syscallValid(s rspec.LinuxSyscall) bool {
997-
if !seccompActionValid(s.Action) {
998-
return false
999-
}
1000-
for index := 0; index < len(s.Args); index++ {
1001-
arg := s.Args[index]
1002-
switch arg.Op {
1003-
case rspec.OpNotEqual:
1004-
case rspec.OpLessThan:
1005-
case rspec.OpLessEqual:
1006-
case rspec.OpEqualTo:
1007-
case rspec.OpGreaterEqual:
1008-
case rspec.OpGreaterThan:
1009-
case rspec.OpMaskedEqual:
1010-
default:
1011-
return false
1012-
}
1013-
}
1014-
return true
1015-
}
1016-
1017918
func isStruct(t reflect.Type) bool {
1018919
return t.Kind() == reflect.Struct
1019920
}

0 commit comments

Comments
 (0)