mirror of
https://github.com/containers/buildah.git
synced 2025-04-18 07:04:05 +03:00
This change is generated by `go1.23rc2 fix ./...`. Had to use go1.23rc2, since all released go versions have a bug preventing it from working with `go 1.22.0` in go.mod (opened https://github.com/golang/go/issues/68825, https://github.com/golang/go/issues/68824 for awareness). Signed-off-by: Kir Kolyshkin <kolyshkin@gmail.com>
36 lines
903 B
Go
36 lines
903 B
Go
//go:build seccomp && linux
|
|
|
|
package buildah
|
|
|
|
import (
|
|
"fmt"
|
|
"os"
|
|
|
|
"github.com/containers/common/pkg/seccomp"
|
|
"github.com/opencontainers/runtime-spec/specs-go"
|
|
)
|
|
|
|
func setupSeccomp(spec *specs.Spec, seccompProfilePath string) error {
|
|
switch seccompProfilePath {
|
|
case "unconfined":
|
|
spec.Linux.Seccomp = nil
|
|
case "":
|
|
seccompConfig, err := seccomp.GetDefaultProfile(spec)
|
|
if err != nil {
|
|
return fmt.Errorf("loading default seccomp profile failed: %w", err)
|
|
}
|
|
spec.Linux.Seccomp = seccompConfig
|
|
default:
|
|
seccompProfile, err := os.ReadFile(seccompProfilePath)
|
|
if err != nil {
|
|
return fmt.Errorf("opening seccomp profile failed: %w", err)
|
|
}
|
|
seccompConfig, err := seccomp.LoadProfile(string(seccompProfile), spec)
|
|
if err != nil {
|
|
return fmt.Errorf("loading seccomp profile (%s) failed: %w", seccompProfilePath, err)
|
|
}
|
|
spec.Linux.Seccomp = seccompConfig
|
|
}
|
|
return nil
|
|
}
|