aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorOphestra <cat@gensokyo.uk>2025-10-11 20:15:53 +0900
committerOphestra <cat@gensokyo.uk>2025-10-11 20:20:41 +0900
commit36f312b3ba45f1bec6341b4f66a1f2e89971bc51 (patch)
treec1cba9a1a4bdee5a4c06d4a64fc9709a913d3c03
parent037144b06e105bb51bdc5d4c451664c89442a7b4 (diff)
internal/app/spcontainer: resolve path through dispatcher
This prevents state from os tainting the test data. Signed-off-by: Ophestra <cat@gensokyo.uk>
-rw-r--r--internal/app/app_test.go2
-rw-r--r--internal/app/spcontainer.go7
2 files changed, 8 insertions, 1 deletions
diff --git a/internal/app/app_test.go b/internal/app/app_test.go
index 226b1b7e..01421528 100644
--- a/internal/app/app_test.go
+++ b/internal/app/app_test.go
@@ -581,6 +581,8 @@ func (k *stubNixOS) lookupEnv(key string) (string, bool) {
return "/run/user/1971", true
case "XDG_CONFIG_HOME":
return "/home/ophestra/xdg/config", true
+ case "DBUS_SYSTEM_BUS_ADDRESS":
+ return "", false
default:
panic(fmt.Sprintf("attempted to access unexpected environment variable %q", key))
}
diff --git a/internal/app/spcontainer.go b/internal/app/spcontainer.go
index 62c4f4f7..247b7983 100644
--- a/internal/app/spcontainer.go
+++ b/internal/app/spcontainer.go
@@ -139,7 +139,12 @@ func (s *spFilesystemOp) toSystem(state *outcomeStateSys) error {
varRunNscd,
}
- _, systemBusAddr := dbus.Address()
+ // dbus.Address does not go through syscallDispatcher
+ systemBusAddr := dbus.FallbackSystemBusAddress
+ if addr, ok := state.k.lookupEnv(dbus.SystemBusAddress); ok {
+ systemBusAddr = addr
+ }
+
if entries, err := dbus.Parse([]byte(systemBusAddr)); err != nil {
return &hst.AppError{Step: "parse dbus address", Err: err}
} else {