diff options
author | Kali Kaneko (leap communications) <kali@leap.se> | 2018-12-13 19:45:48 +0100 |
---|---|---|
committer | Kali Kaneko (leap communications) <kali@leap.se> | 2018-12-13 19:47:11 +0100 |
commit | 81843a0477c5eba4b3d4f6ff932f748f9e1244e7 (patch) | |
tree | 6068ae0ff1d8ac617e2781fb8aa68200e71403f2 /vendor/golang.org/x/sys/unix/openbsd_pledge.go | |
parent | ac56a90e21118dc1ddfc1bd5e69d87f157710412 (diff) |
vendor packages
Diffstat (limited to 'vendor/golang.org/x/sys/unix/openbsd_pledge.go')
-rw-r--r-- | vendor/golang.org/x/sys/unix/openbsd_pledge.go | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/vendor/golang.org/x/sys/unix/openbsd_pledge.go b/vendor/golang.org/x/sys/unix/openbsd_pledge.go new file mode 100644 index 0000000..db4f72e --- /dev/null +++ b/vendor/golang.org/x/sys/unix/openbsd_pledge.go @@ -0,0 +1,38 @@ +// Copyright 2016 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build openbsd +// +build 386 amd64 arm + +package unix + +import ( + "syscall" + "unsafe" +) + +const ( + SYS_PLEDGE = 108 +) + +// Pledge implements the pledge syscall. For more information see pledge(2). +func Pledge(promises string, paths []string) error { + promisesPtr, err := syscall.BytePtrFromString(promises) + if err != nil { + return err + } + promisesUnsafe, pathsUnsafe := unsafe.Pointer(promisesPtr), unsafe.Pointer(nil) + if paths != nil { + var pathsPtr []*byte + if pathsPtr, err = syscall.SlicePtrFromStrings(paths); err != nil { + return err + } + pathsUnsafe = unsafe.Pointer(&pathsPtr[0]) + } + _, _, e := syscall.Syscall(SYS_PLEDGE, uintptr(promisesUnsafe), uintptr(pathsUnsafe), 0) + if e != 0 { + return e + } + return nil +} |