aboutsummaryrefslogtreecommitdiffhomepage
path: root/container/path.go
diff options
context:
space:
mode:
authorOphestra <cat@gensokyo.uk>2025-10-07 20:06:26 +0900
committerOphestra <cat@gensokyo.uk>2025-10-07 20:57:58 +0900
commit0e6c1a50260de141c50bb50fd3f2b2bcf9a3fe64 (patch)
treedfe9c40ceb8c1be8d2728a2db9017bffef174d3d /container/path.go
parentd23b4dc9e64d3f00e746c65f3038a1a6de44b8f5 (diff)
container/check: move absolute pathname
This allows use of absolute pathname values without importing container. Signed-off-by: Ophestra <cat@gensokyo.uk>
Diffstat (limited to 'container/path.go')
-rw-r--r--container/path.go27
1 files changed, 16 insertions, 11 deletions
diff --git a/container/path.go b/container/path.go
index fca32c66..bf3f870d 100644
--- a/container/path.go
+++ b/container/path.go
@@ -8,12 +8,17 @@ import (
"strconv"
"strings"
"syscall"
+ _ "unsafe"
+ "hakurei.app/container/check"
"hakurei.app/container/vfs"
)
/* constants in this file bypass abs check, be extremely careful when changing them! */
+//go:linkname unsafeAbs hakurei.app/container/check.unsafeAbs
+func unsafeAbs(_ string) *check.Absolute
+
const (
// FHSRoot points to the file system root.
FHSRoot = "/"
@@ -52,31 +57,31 @@ const (
var (
// AbsFHSRoot is [FHSRoot] as [Absolute].
- AbsFHSRoot = &Absolute{FHSRoot}
+ AbsFHSRoot = unsafeAbs(FHSRoot)
// AbsFHSEtc is [FHSEtc] as [Absolute].
- AbsFHSEtc = &Absolute{FHSEtc}
+ AbsFHSEtc = unsafeAbs(FHSEtc)
// AbsFHSTmp is [FHSTmp] as [Absolute].
- AbsFHSTmp = &Absolute{FHSTmp}
+ AbsFHSTmp = unsafeAbs(FHSTmp)
// AbsFHSRun is [FHSRun] as [Absolute].
- AbsFHSRun = &Absolute{FHSRun}
+ AbsFHSRun = unsafeAbs(FHSRun)
// AbsFHSRunUser is [FHSRunUser] as [Absolute].
- AbsFHSRunUser = &Absolute{FHSRunUser}
+ AbsFHSRunUser = unsafeAbs(FHSRunUser)
// AbsFHSUsrBin is [FHSUsrBin] as [Absolute].
- AbsFHSUsrBin = &Absolute{FHSUsrBin}
+ AbsFHSUsrBin = unsafeAbs(FHSUsrBin)
// AbsFHSVar is [FHSVar] as [Absolute].
- AbsFHSVar = &Absolute{FHSVar}
+ AbsFHSVar = unsafeAbs(FHSVar)
// AbsFHSVarLib is [FHSVarLib] as [Absolute].
- AbsFHSVarLib = &Absolute{FHSVarLib}
+ AbsFHSVarLib = unsafeAbs(FHSVarLib)
// AbsFHSDev is [FHSDev] as [Absolute].
- AbsFHSDev = &Absolute{FHSDev}
+ AbsFHSDev = unsafeAbs(FHSDev)
// AbsFHSProc is [FHSProc] as [Absolute].
- AbsFHSProc = &Absolute{FHSProc}
+ AbsFHSProc = unsafeAbs(FHSProc)
// AbsFHSSys is [FHSSys] as [Absolute].
- AbsFHSSys = &Absolute{FHSSys}
+ AbsFHSSys = unsafeAbs(FHSSys)
)
const (