summaryrefslogtreecommitdiffstats
path: root/unveil.go
diff options
context:
space:
mode:
Diffstat (limited to 'unveil.go')
-rw-r--r--unveil.go32
1 files changed, 14 insertions, 18 deletions
diff --git a/unveil.go b/unveil.go
index 242ce14..99b6629 100644
--- a/unveil.go
+++ b/unveil.go
@@ -1,30 +1,26 @@
//go:build openbsd
// +build openbsd
-// Doesn't do anything yet.
-
package main
-/*
-#include <stdlib.h>
-#include <unistd.h>
-*/
-import "C"
-
import (
- "fmt"
- "unsafe"
+ "golang.org/x/sys/unix"
)
func Unveil(path string, perms string) error {
- cpath := C.CString(path)
- defer C.free(unsafe.Pointer(cpath))
- cperms := C.CString(perms)
- defer C.free(unsafe.Pointer(cperms))
+ return unix.Unveil(path, perms)
+}
+
+func UnveilBlock() error {
+ return unix.UnveilBlock()
+}
- rv, err := C.unveil(cpath, cperms)
- if rv != 0 {
- return fmt.Errorf("unveil(%s, %s) failure (%d)", path, perms, err)
+func UnveilPaths(paths []string, perms string) error {
+ for _, path := range paths {
+ err := Unveil(path, perms)
+ if err != nil {
+ return err
+ }
}
- return nil
+ return UnveilBlock()
}