Skip to content

Commit aad422f

Browse files
committed
specconv: fix null spec.Process making runc panic
Signed-off-by: Jingxiao Lu <[email protected]>
1 parent ad0f525 commit aad422f

File tree

2 files changed

+24
-11
lines changed

2 files changed

+24
-11
lines changed

libcontainer/specconv/spec_linux.go

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -240,19 +240,19 @@ func CreateLibcontainerConfig(opts *CreateOpts) (*configs.Config, error) {
240240
config.Seccomp = seccomp
241241
}
242242
}
243-
if spec.Process.SelinuxLabel != "" {
244-
config.ProcessLabel = spec.Process.SelinuxLabel
245-
}
246243
if spec.Process != nil {
247244
config.OomScoreAdj = spec.Process.OOMScoreAdj
248-
}
249-
if spec.Process.Capabilities != nil {
250-
config.Capabilities = &configs.Capabilities{
251-
Bounding: spec.Process.Capabilities.Bounding,
252-
Effective: spec.Process.Capabilities.Effective,
253-
Permitted: spec.Process.Capabilities.Permitted,
254-
Inheritable: spec.Process.Capabilities.Inheritable,
255-
Ambient: spec.Process.Capabilities.Ambient,
245+
if spec.Process.SelinuxLabel != "" {
246+
config.ProcessLabel = spec.Process.SelinuxLabel
247+
}
248+
if spec.Process.Capabilities != nil {
249+
config.Capabilities = &configs.Capabilities{
250+
Bounding: spec.Process.Capabilities.Bounding,
251+
Effective: spec.Process.Capabilities.Effective,
252+
Permitted: spec.Process.Capabilities.Permitted,
253+
Inheritable: spec.Process.Capabilities.Inheritable,
254+
Ambient: spec.Process.Capabilities.Ambient,
255+
}
256256
}
257257
}
258258
createHooks(spec, config)

libcontainer/specconv/spec_linux_test.go

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -443,3 +443,16 @@ func TestRootlessSpecconvValidate(t *testing.T) {
443443
t.Errorf("Expected specconv to produce valid rootless container config: %v", err)
444444
}
445445
}
446+
447+
func TestNullProcess(t *testing.T) {
448+
spec := Example()
449+
spec.Process = nil
450+
451+
_, err := CreateLibcontainerConfig(&CreateOpts{
452+
Spec: spec,
453+
})
454+
455+
if err != nil {
456+
t.Errorf("Null process should be forbidden")
457+
}
458+
}

0 commit comments

Comments
 (0)