Skip to content

Commit

Permalink
Fix seccomp output in docker info
Browse files Browse the repository at this point in the history
This fix tries to address the issue raised in #24374 where
`docker info` outputs seccomp support in Ubuntu 14.04 but
the seccomp wass not actually supported.

The issue is that in the current docker implementation, seccomp
support is only checked against the kernel by inspect CONFIG_SECCOMP
and CONFIG_SECCOMP_FILTER. However, seccomp might not be enabled
when building docker (through golang build flag).

This fix adds a supportSeccomp boolean variable. The supportSeccomp
is only set to true when seccomp is enabled when building docker.

This fix fixes #24374.

Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
  • Loading branch information
yongtang committed Jul 9, 2016
1 parent ad969f1 commit a3b9dd8
Show file tree
Hide file tree
Showing 4 changed files with 11 additions and 2 deletions.
2 changes: 1 addition & 1 deletion daemon/info.go
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ func (daemon *Daemon) SystemInfo() (*types.Info, error) {
if sysInfo.AppArmor {
securityOptions = append(securityOptions, "apparmor")
}
if sysInfo.Seccomp {
if sysInfo.Seccomp && supportsSeccomp {
securityOptions = append(securityOptions, "seccomp")
}
if selinuxEnabled() {
Expand Down
4 changes: 3 additions & 1 deletion daemon/seccomp_disabled.go
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// +build !seccomp,!windows
// +build linux,!seccomp

package daemon

Expand All @@ -9,6 +9,8 @@ import (
"github.com/opencontainers/specs/specs-go"
)

var supportsSeccomp = false

func setSeccomp(daemon *Daemon, rs *specs.Spec, c *container.Container) error {
if c.SeccompProfile != "" && c.SeccompProfile != "unconfined" {
return fmt.Errorf("seccomp profiles are not supported on this daemon, you cannot specify a custom seccomp profile")
Expand Down
2 changes: 2 additions & 0 deletions daemon/seccomp_linux.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@ import (
"github.com/opencontainers/specs/specs-go"
)

var supportsSeccomp = true

func setSeccomp(daemon *Daemon, rs *specs.Spec, c *container.Container) error {
var profile *specs.Seccomp
var err error
Expand Down
5 changes: 5 additions & 0 deletions daemon/seccomp_unsupported.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
// +build !linux

package daemon

var supportsSeccomp = false

0 comments on commit a3b9dd8

Please sign in to comment.