Mercurial > yakumo_izuru > aya
comparison vendor/golang.org/x/sys/unix/unveil_openbsd.go @ 66:787b5ee0289d draft
Use vendored modules
Signed-off-by: Izuru Yakumo <yakumo.izuru@chaotic.ninja>
author | yakumo.izuru |
---|---|
date | Sun, 23 Jul 2023 13:18:53 +0000 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
65:6d985efa0f7a | 66:787b5ee0289d |
---|---|
1 // Copyright 2018 The Go Authors. All rights reserved. | |
2 // Use of this source code is governed by a BSD-style | |
3 // license that can be found in the LICENSE file. | |
4 | |
5 package unix | |
6 | |
7 import ( | |
8 "syscall" | |
9 "unsafe" | |
10 ) | |
11 | |
12 // Unveil implements the unveil syscall. | |
13 // For more information see unveil(2). | |
14 // Note that the special case of blocking further | |
15 // unveil calls is handled by UnveilBlock. | |
16 func Unveil(path string, flags string) error { | |
17 pathPtr, err := syscall.BytePtrFromString(path) | |
18 if err != nil { | |
19 return err | |
20 } | |
21 flagsPtr, err := syscall.BytePtrFromString(flags) | |
22 if err != nil { | |
23 return err | |
24 } | |
25 _, _, e := syscall.Syscall(SYS_UNVEIL, uintptr(unsafe.Pointer(pathPtr)), uintptr(unsafe.Pointer(flagsPtr)), 0) | |
26 if e != 0 { | |
27 return e | |
28 } | |
29 return nil | |
30 } | |
31 | |
32 // UnveilBlock blocks future unveil calls. | |
33 // For more information see unveil(2). | |
34 func UnveilBlock() error { | |
35 // Both pointers must be nil. | |
36 var pathUnsafe, flagsUnsafe unsafe.Pointer | |
37 _, _, e := syscall.Syscall(SYS_UNVEIL, uintptr(pathUnsafe), uintptr(flagsUnsafe), 0) | |
38 if e != 0 { | |
39 return e | |
40 } | |
41 return nil | |
42 } |