@@ -597,8 +597,8 @@ func (v *Validator) CheckLinux() (errs error) {
597597
598598 for index := 0 ; index < len (v .spec .Linux .Namespaces ); index ++ {
599599 ns := v .spec .Linux .Namespaces [index ]
600- if ! v . namespaceValid ( ns ) {
601- errs = multierror .Append (errs , fmt .Errorf ("namespace %v is invalid " , ns ))
600+ if ns . Path != "" && ! osFilepath . IsAbs ( v . platform , ns . Path ) {
601+ errs = multierror .Append (errs , specerror . NewError ( specerror . NSPathAbs , fmt .Errorf ("namespace.path %q is not an absolute path " , ns . Path ), rspec . Version ))
602602 }
603603
604604 tmpItem := nsTypeList [ns .Type ]
@@ -738,10 +738,6 @@ func (v *Validator) CheckLinux() (errs error) {
738738 errs = multierror .Append (errs , v .CheckLinuxResources ())
739739 }
740740
741- if v .spec .Linux .Seccomp != nil {
742- errs = multierror .Append (errs , v .CheckSeccomp ())
743- }
744-
745741 for _ , maskedPath := range v .spec .Linux .MaskedPaths {
746742 if ! strings .HasPrefix (maskedPath , "/" ) {
747743 errs = multierror .Append (errs ,
@@ -819,47 +815,6 @@ func (v *Validator) CheckLinuxResources() (errs error) {
819815 return
820816}
821817
822- // CheckSeccomp checkc v.spec.Linux.Seccomp
823- func (v * Validator ) CheckSeccomp () (errs error ) {
824- logrus .Debugf ("check linux seccomp" )
825-
826- s := v .spec .Linux .Seccomp
827- if ! seccompActionValid (s .DefaultAction ) {
828- errs = multierror .Append (errs , fmt .Errorf ("seccomp defaultAction %q is invalid" , s .DefaultAction ))
829- }
830- for index := 0 ; index < len (s .Syscalls ); index ++ {
831- if ! syscallValid (s .Syscalls [index ]) {
832- errs = multierror .Append (errs , fmt .Errorf ("syscall %v is invalid" , s .Syscalls [index ]))
833- }
834- }
835- for index := 0 ; index < len (s .Architectures ); index ++ {
836- switch s .Architectures [index ] {
837- case rspec .ArchX86 :
838- case rspec .ArchX86_64 :
839- case rspec .ArchX32 :
840- case rspec .ArchARM :
841- case rspec .ArchAARCH64 :
842- case rspec .ArchMIPS :
843- case rspec .ArchMIPS64 :
844- case rspec .ArchMIPS64N32 :
845- case rspec .ArchMIPSEL :
846- case rspec .ArchMIPSEL64 :
847- case rspec .ArchMIPSEL64N32 :
848- case rspec .ArchPPC :
849- case rspec .ArchPPC64 :
850- case rspec .ArchPPC64LE :
851- case rspec .ArchS390 :
852- case rspec .ArchS390X :
853- case rspec .ArchPARISC :
854- case rspec .ArchPARISC64 :
855- default :
856- errs = multierror .Append (errs , fmt .Errorf ("seccomp architecture %q is invalid" , s .Architectures [index ]))
857- }
858- }
859-
860- return
861- }
862-
863818// CapValid checks whether a capability is valid
864819func CapValid (c string , hostSpecific bool ) error {
865820 isValid := false
@@ -936,26 +891,6 @@ func (v *Validator) rlimitValid(rlimit rspec.POSIXRlimit) (errs error) {
936891 return
937892}
938893
939- func (v * Validator ) namespaceValid (ns rspec.LinuxNamespace ) bool {
940- switch ns .Type {
941- case rspec .PIDNamespace :
942- case rspec .NetworkNamespace :
943- case rspec .MountNamespace :
944- case rspec .IPCNamespace :
945- case rspec .UTSNamespace :
946- case rspec .UserNamespace :
947- case rspec .CgroupNamespace :
948- default :
949- return false
950- }
951-
952- if ns .Path != "" && ! osFilepath .IsAbs (v .platform , ns .Path ) {
953- return false
954- }
955-
956- return true
957- }
958-
959894func deviceValid (d rspec.LinuxDevice ) bool {
960895 switch d .Type {
961896 case "b" , "c" , "u" :
@@ -972,40 +907,6 @@ func deviceValid(d rspec.LinuxDevice) bool {
972907 return true
973908}
974909
975- func seccompActionValid (secc rspec.LinuxSeccompAction ) bool {
976- switch secc {
977- case rspec .ActKill :
978- case rspec .ActTrap :
979- case rspec .ActErrno :
980- case rspec .ActTrace :
981- case rspec .ActAllow :
982- default :
983- return false
984- }
985- return true
986- }
987-
988- func syscallValid (s rspec.LinuxSyscall ) bool {
989- if ! seccompActionValid (s .Action ) {
990- return false
991- }
992- for index := 0 ; index < len (s .Args ); index ++ {
993- arg := s .Args [index ]
994- switch arg .Op {
995- case rspec .OpNotEqual :
996- case rspec .OpLessThan :
997- case rspec .OpLessEqual :
998- case rspec .OpEqualTo :
999- case rspec .OpGreaterEqual :
1000- case rspec .OpGreaterThan :
1001- case rspec .OpMaskedEqual :
1002- default :
1003- return false
1004- }
1005- }
1006- return true
1007- }
1008-
1009910func isStruct (t reflect.Type ) bool {
1010911 return t .Kind () == reflect .Struct
1011912}
0 commit comments