summary refs log tree commit diff stats
path: root/unveil.go
blob: 3069ec6c3d580f0db26478a01bc33ef2dd895ccb (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
// +build openbsd

package lynx

import "golang.org/x/sys/unix"

// Unveil takes a path, permission & unveils it, returning an
// error if unveil fails. "no such file or directory" error is
// ignored.
func Unveil(path string, flags string) (err error) {
	err = unix.Unveil(path, flags)

	// "no such file or directory" error is ignored.
	if err != nil && err.Error() != "no such file or directory" {
		// Better error message could be returned like
		// one that includes the path on which unveil
		// failed.
		return err
	}
	// Returning nil because err can be "no such file or
	// directory" which needs to be ignored.
	return nil
}

// UnveilPath is kept for backwards compatibility, use Unveil instead.
func UnveilPath(path string, flags string) (err error) {
	return Unveil(path, flags)
}

// UnveilStrict is just a wrapper around unix.Unveil.
func UnveilStrict(path string, flags string) error {
	return unix.Unveil(path, flags)
}

// UnveilPathStrict is kept for backwards compatibility, use
// UnveilStrict instead.
func UnveilPathStrict(path string, flags string) error {
	return UnveilStrict(path, flags)
}