mirror of
				https://gitea.com/Lydanne/buildx.git
				synced 2025-11-04 18:13:42 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			30 lines
		
	
	
		
			574 B
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			30 lines
		
	
	
		
			574 B
		
	
	
	
		
			Go
		
	
	
	
	
	
// +build linux,seccomp
 | 
						|
 | 
						|
package system
 | 
						|
 | 
						|
import (
 | 
						|
	"sync"
 | 
						|
 | 
						|
	"golang.org/x/sys/unix"
 | 
						|
)
 | 
						|
 | 
						|
var seccompSupported bool
 | 
						|
var seccompOnce sync.Once
 | 
						|
 | 
						|
func SeccompSupported() bool {
 | 
						|
	seccompOnce.Do(func() {
 | 
						|
		seccompSupported = getSeccompSupported()
 | 
						|
	})
 | 
						|
	return seccompSupported
 | 
						|
}
 | 
						|
 | 
						|
func getSeccompSupported() bool {
 | 
						|
	if err := unix.Prctl(unix.PR_GET_SECCOMP, 0, 0, 0, 0); err != unix.EINVAL {
 | 
						|
		// Make sure the kernel has CONFIG_SECCOMP_FILTER.
 | 
						|
		if err := unix.Prctl(unix.PR_SET_SECCOMP, unix.SECCOMP_MODE_FILTER, 0, 0, 0); err != unix.EINVAL {
 | 
						|
			return true
 | 
						|
		}
 | 
						|
	}
 | 
						|
	return false
 | 
						|
}
 |