From 94c68aa0019dcca11eae8b075b21849f418dadb7 Mon Sep 17 00:00:00 2001 From: Sebastiaan van Stijn Date: Tue, 27 Dec 2022 10:20:09 +0100 Subject: [PATCH] oci: appendOSMounts(): remove unused error, and move This function was added in ae22854e2bfdf233567831d99685a35ef1e4c1af, but never returned an error, and the error-return was not handled on the callsite. This patch removes the unused error return, and moves it to a file related to mounts, which allowed for some of the stubs to be removed and shared between non-FreeBSD platforms. Signed-off-by: Sebastiaan van Stijn --- oci/mounts.go | 3 +++ oci/mounts_freebsd.go | 28 ++++++++++++++++++++++ oci/spec_opts_darwin.go | 21 ----------------- oci/spec_opts_freebsd.go | 50 ---------------------------------------- oci/spec_opts_linux.go | 4 ---- oci/spec_opts_windows.go | 4 ---- 6 files changed, 31 insertions(+), 79 deletions(-) delete mode 100644 oci/spec_opts_darwin.go delete mode 100644 oci/spec_opts_freebsd.go diff --git a/oci/mounts.go b/oci/mounts.go index 934d45166..8c758f433 100644 --- a/oci/mounts.go +++ b/oci/mounts.go @@ -68,3 +68,6 @@ func defaultMounts() []specs.Mount { }, } } + +// appendOSMounts is only used on FreeBSD, and a no-op on other platforms. +func appendOSMounts(_ *Spec, _ string) {} diff --git a/oci/mounts_freebsd.go b/oci/mounts_freebsd.go index ada12c1a6..6675c5516 100644 --- a/oci/mounts_freebsd.go +++ b/oci/mounts_freebsd.go @@ -35,3 +35,31 @@ func defaultMounts() []specs.Mount { }, } } + +// appendOSMounts modifies the mount spec to mount emulated Linux filesystems on FreeBSD, +// as per: https://wiki.freebsd.org/LinuxJails +func appendOSMounts(s *Spec, os string) { + // No-op for FreeBSD containers + if os != "linux" { + return + } + /* The nosuid noexec options are for consistency with Linux mounts: on FreeBSD it is + by default impossible to execute anything from these filesystems. + */ + var mounts = []specs.Mount{ + { + Destination: "/proc", + Type: "linprocfs", + Source: "linprocfs", + Options: []string{"nosuid", "noexec"}, + }, + { + Destination: "/sys", + Type: "linsysfs", + Source: "linsysfs", + Options: []string{"nosuid", "noexec", "nodev"}, + }, + } + + s.Mounts = append(mounts, s.Mounts...) +} diff --git a/oci/spec_opts_darwin.go b/oci/spec_opts_darwin.go deleted file mode 100644 index 44cc1ec68..000000000 --- a/oci/spec_opts_darwin.go +++ /dev/null @@ -1,21 +0,0 @@ -/* - Copyright The containerd Authors. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -package oci - -func appendOSMounts(s *Spec, os string) error { - return nil -} diff --git a/oci/spec_opts_freebsd.go b/oci/spec_opts_freebsd.go deleted file mode 100644 index 8fb267ac0..000000000 --- a/oci/spec_opts_freebsd.go +++ /dev/null @@ -1,50 +0,0 @@ -/* - Copyright The containerd Authors. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -package oci - -import ( - specs "github.com/opencontainers/runtime-spec/specs-go" -) - -// appendOSMounts modifies the mount spec to mount emulated Linux filesystems on FreeBSD, -// as per: https://wiki.freebsd.org/LinuxJails -func appendOSMounts(s *Spec, os string) error { - // No-op for FreeBSD containers - if os != "linux" { - return nil - } - /* The nosuid noexec options are for consistency with Linux mounts: on FreeBSD it is - by default impossible to execute anything from these filesystems. - */ - var mounts = []specs.Mount{ - { - Destination: "/proc", - Type: "linprocfs", - Source: "linprocfs", - Options: []string{"nosuid", "noexec"}, - }, - { - Destination: "/sys", - Type: "linsysfs", - Source: "linsysfs", - Options: []string{"nosuid", "noexec", "nodev"}, - }, - } - - s.Mounts = append(mounts, s.Mounts...) - return nil -} diff --git a/oci/spec_opts_linux.go b/oci/spec_opts_linux.go index a479d4570..36ad26196 100644 --- a/oci/spec_opts_linux.go +++ b/oci/spec_opts_linux.go @@ -176,7 +176,3 @@ func WithRdt(closID, l3CacheSchema, memBwSchema string) SpecOpts { func escapeAndCombineArgs(args []string) string { panic("not supported") } - -func appendOSMounts(s *Spec, os string) error { - return nil -} diff --git a/oci/spec_opts_windows.go b/oci/spec_opts_windows.go index d3ffdddba..94cb39312 100644 --- a/oci/spec_opts_windows.go +++ b/oci/spec_opts_windows.go @@ -115,7 +115,3 @@ func escapeAndCombineArgs(args []string) string { } return strings.Join(escaped, " ") } - -func appendOSMounts(s *Spec, os string) error { - return nil -}