all repos — legit @ 4aa8cbff320b669fc07f356409b05d6b1795c342

web frontend for git, written in go

unveil: initial commit
zak e-zk@users.noreply.github.com
Thu, 22 Dec 2022 00:17:33 +1000
commit

4aa8cbff320b669fc07f356409b05d6b1795c342

parent

d0f5d874c58abac60bd9145eb98c0305047c9d0f

4 files changed, 36 insertions(+), 22 deletions(-)

jump to
M go.modgo.mod

@@ -8,6 +8,7 @@ github.com/bluekeyes/go-gitdiff v0.7.0

github.com/dustin/go-humanize v1.0.0 github.com/go-git/go-git/v5 v5.5.1 github.com/sosedoff/gitkit v0.3.0 + golang.org/x/sys v0.3.0 gopkg.in/yaml.v3 v3.0.0 )

@@ -30,7 +31,6 @@ github.com/xanzy/ssh-agent v0.3.3 // indirect

golang.org/x/crypto v0.4.0 // indirect golang.org/x/mod v0.7.0 // indirect golang.org/x/net v0.4.0 // indirect - golang.org/x/sys v0.3.0 // indirect golang.org/x/tools v0.4.0 // indirect gopkg.in/warnings.v0 v0.1.2 // indirect )
M main.gomain.go

@@ -20,9 +20,9 @@ if err != nil {

log.Fatal(err) } - // for path := range []string{c.Dirs.Static, c.Repo.ScanPath, c.Dirs.Templates} { - // Unveil(path, "r") - // } + if err = UnveilPaths([]string{c.Dirs.Static, c.Repo.ScanPath, c.Dirs.Templates}, "r"); err != nil { + log.Fatal(err) + } mux := routes.Handlers(c) addr := fmt.Sprintf("%s:%d", c.Server.Host, c.Server.Port)
M unveil.gounveil.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) +} - rv, err := C.unveil(cpath, cperms) - if rv != 0 { - return fmt.Errorf("unveil(%s, %s) failure (%d)", path, perms, err) +func UnveilBlock() error { + return unix.UnveilBlock() +} + +func UnveilPaths(paths []string, perms string) error { + for _, path := range paths { + err := Unveil(path, perms) + if err != nil { + return err + } } - return nil + return UnveilBlock() }
A unveil_stub.go

@@ -0,0 +1,18 @@

+//go:build !openbsd +// +build !openbsd + +// Stub functions for GOOS that don't support unix.Unveil() + +package main + +func Unveil(path string, perms string) error { + return nil +} + +func UnveilBlock() error { + return nil +} + +func UnveilPaths(paths []string, perms string) error { + return nil +}