Skip to content

Commit 9ef213f

Browse files
authored
Fix XDG_RUNTIME_DIR setting in shellexec (#2019)
XDG_RUNTIME_DIR needs to be set. If it is not set by a user-defined config, it should default to `/run/user/$UID`
1 parent f60d0f0 commit 9ef213f

File tree

1 file changed

+6
-5
lines changed

1 file changed

+6
-5
lines changed

pkg/shellexec/shellexec.go

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@ import (
1818
"syscall"
1919
"time"
2020

21+
"maps"
22+
2123
"github.com/creack/pty"
2224
"github.com/wavetermdev/waveterm/pkg/blocklogger"
2325
"github.com/wavetermdev/waveterm/pkg/panichandler"
@@ -633,11 +635,10 @@ func tryGetPamEnvVars() map[string]string {
633635
if err != nil {
634636
log.Printf("error parsing %s: %v", userEnvironmentPath, err)
635637
}
636-
for k, v := range envVars2 {
637-
envVars[k] = v
638-
}
639-
for k, v := range envVars3 {
640-
envVars[k] = v
638+
maps.Copy(envVars, envVars2)
639+
maps.Copy(envVars, envVars3)
640+
if runtime_dir, ok := envVars["XDG_RUNTIME_DIR"]; !ok || runtime_dir == "" {
641+
envVars["XDG_RUNTIME_DIR"] = "/run/user/" + fmt.Sprint(os.Getuid())
641642
}
642643
return envVars
643644
}

0 commit comments

Comments
 (0)