Skip to content

Commit 0d75257

Browse files
author
Zhou Hao
committed
validate: remove duplicate verification
These fields have already been verified in CheckJSONSchema, so there is no need to verify again. Signed-off-by: Zhou Hao <zhouhao@cn.fujitsu.com>
1 parent efaa669 commit 0d75257

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
@@ -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
864819
func 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-
959894
func 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-
1009910
func isStruct(t reflect.Type) bool {
1010911
return t.Kind() == reflect.Struct
1011912
}

0 commit comments

Comments
 (0)