@@ -105,6 +105,10 @@ func validateGeneralProcess(spec *rspec.Spec) error {
105
105
}
106
106
107
107
func validateLinuxProcess (spec * rspec.Spec ) error {
108
+ if spec .Process == nil {
109
+ return nil
110
+ }
111
+
108
112
validateGeneralProcess (spec )
109
113
110
114
uid := os .Getuid ()
@@ -162,6 +166,10 @@ func validateLinuxProcess(spec *rspec.Spec) error {
162
166
}
163
167
164
168
func validateCapabilities (spec * rspec.Spec ) error {
169
+ if spec .Process == nil || spec .Process .Capabilities == nil {
170
+ return nil
171
+ }
172
+
165
173
last := capability .CAP_LAST_CAP
166
174
// workaround for RHEL6 which has no /proc/sys/kernel/cap_last_cap
167
175
if last == capability .Cap (63 ) {
@@ -178,22 +186,20 @@ func validateCapabilities(spec *rspec.Spec) error {
178
186
expectedCaps3 := make (map [string ]bool )
179
187
expectedCaps4 := make (map [string ]bool )
180
188
expectedCaps5 := make (map [string ]bool )
181
- if spec .Process .Capabilities != nil {
182
- for _ , ec := range spec .Process .Capabilities .Bounding {
183
- expectedCaps1 [ec ] = true
184
- }
185
- for _ , ec := range spec .Process .Capabilities .Effective {
186
- expectedCaps2 [ec ] = true
187
- }
188
- for _ , ec := range spec .Process .Capabilities .Inheritable {
189
- expectedCaps3 [ec ] = true
190
- }
191
- for _ , ec := range spec .Process .Capabilities .Permitted {
192
- expectedCaps4 [ec ] = true
193
- }
194
- for _ , ec := range spec .Process .Capabilities .Ambient {
195
- expectedCaps5 [ec ] = true
196
- }
189
+ for _ , ec := range spec .Process .Capabilities .Bounding {
190
+ expectedCaps1 [ec ] = true
191
+ }
192
+ for _ , ec := range spec .Process .Capabilities .Effective {
193
+ expectedCaps2 [ec ] = true
194
+ }
195
+ for _ , ec := range spec .Process .Capabilities .Inheritable {
196
+ expectedCaps3 [ec ] = true
197
+ }
198
+ for _ , ec := range spec .Process .Capabilities .Permitted {
199
+ expectedCaps4 [ec ] = true
200
+ }
201
+ for _ , ec := range spec .Process .Capabilities .Ambient {
202
+ expectedCaps5 [ec ] = true
197
203
}
198
204
199
205
for _ , cap := range capability .List () {
@@ -259,6 +265,10 @@ func validateHostname(spec *rspec.Spec) error {
259
265
}
260
266
261
267
func validateRlimits (spec * rspec.Spec ) error {
268
+ if spec .Process == nil {
269
+ return nil
270
+ }
271
+
262
272
for _ , r := range spec .Process .Rlimits {
263
273
rl , err := strToRlimit (r .Type )
264
274
if err != nil {
@@ -311,6 +321,10 @@ func testWriteAccess(path string) error {
311
321
}
312
322
313
323
func validateRootFS (spec * rspec.Spec ) error {
324
+ if spec .Root == nil {
325
+ return nil
326
+ }
327
+
314
328
if spec .Root .Readonly {
315
329
err := testWriteAccess ("/" )
316
330
if err == nil {
@@ -422,6 +436,10 @@ func validateDefaultSymlinks(spec *rspec.Spec) error {
422
436
}
423
437
424
438
func validateDefaultDevices (spec * rspec.Spec ) error {
439
+ if spec .Process == nil {
440
+ return nil
441
+ }
442
+
425
443
if spec .Process .Terminal {
426
444
defaultDevices = append (defaultDevices , "/dev/console" )
427
445
}
0 commit comments