Skip to content

Commit 9182c46

Browse files
author
Ma Shimiao
committed
runtimetest: optimize capabilities validation
Signed-off-by: Ma Shimiao <[email protected]>
1 parent 89907b6 commit 9182c46

File tree

1 file changed

+12
-16
lines changed

1 file changed

+12
-16
lines changed

cmd/runtimetest/main.go

Lines changed: 12 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -101,34 +101,30 @@ func validateProcess(spec *rspec.Spec) error {
101101

102102
func validateCapabilities(spec *rspec.Spec) error {
103103
fmt.Println("validating capabilities")
104-
capabilityMap := make(map[string]capability.Cap)
105-
expectedCaps := make(map[capability.Cap]bool)
104+
106105
last := capability.CAP_LAST_CAP
107106
// workaround for RHEL6 which has no /proc/sys/kernel/cap_last_cap
108107
if last == capability.Cap(63) {
109108
last = capability.CAP_BLOCK_SUSPEND
110109
}
111-
for _, cap := range capability.List() {
112-
if cap > last {
113-
continue
114-
}
115-
capKey := fmt.Sprintf("CAP_%s", strings.ToUpper(cap.String()))
116-
capabilityMap[capKey] = cap
117-
expectedCaps[cap] = false
118-
}
119-
120-
for _, ec := range spec.Process.Capabilities {
121-
cap := capabilityMap[ec]
122-
expectedCaps[cap] = true
123-
}
124110

125111
processCaps, err := capability.NewPid(1)
126112
if err != nil {
127113
return err
128114
}
129115

116+
expectedCaps := make(map[string]bool)
117+
for _, ec := range spec.Process.Capabilities {
118+
expectedCaps[ec] = true
119+
}
120+
130121
for _, cap := range capability.List() {
131-
expectedSet := expectedCaps[cap]
122+
if cap > last {
123+
continue
124+
}
125+
126+
capKey := fmt.Sprintf("CAP_%s", strings.ToUpper(cap.String()))
127+
expectedSet := expectedCaps[capKey]
132128
actuallySet := processCaps.Get(capability.EFFECTIVE, cap)
133129
if expectedSet != actuallySet {
134130
if expectedSet {

0 commit comments

Comments
 (0)