From a04b0ede50ebf650848256d74879d16ddc85e30a Mon Sep 17 00:00:00 2001 From: Nathan Coad Date: Wed, 11 Feb 2026 12:29:49 +1100 Subject: [PATCH] fix tmp dir permissions crash --- src/system.go | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/src/system.go b/src/system.go index 592b34a..135fbdf 100644 --- a/src/system.go +++ b/src/system.go @@ -141,7 +141,11 @@ func loadSettings() (settings SettingsStruct, err error) { defaults["udpxy"] = "" defaults["version"] = System.DBVersion defaults["xteveAutoUpdate"] = true - defaults["temp.path"] = System.Folder.Temp + var defaultTempPath = System.Folder.Temp + if len(os.Getenv("XTEVE_CONFIG")) > 0 { + defaultTempPath = System.Folder.Config + "tmp" + string(os.PathSeparator) + } + defaults["temp.path"] = defaultTempPath // Default Werte setzen for key, value := range defaults { @@ -209,8 +213,26 @@ func saveSettings(settings SettingsStruct) (err error) { settings.UserAgent = defaultUserAgent } + settings.TempPath = strings.TrimRight(settings.TempPath, string(os.PathSeparator)) + string(os.PathSeparator) System.Folder.Temp = settings.TempPath + settings.UUID + string(os.PathSeparator) + err = checkFolder(System.Folder.Temp) + if err != nil { + + fallbackTempPath := System.Folder.Config + "tmp" + string(os.PathSeparator) + fallbackTempFolder := fallbackTempPath + settings.UUID + string(os.PathSeparator) + fallbackErr := checkFolder(fallbackTempFolder) + + if fallbackErr != nil { + return err + } + + settings.TempPath = fallbackTempPath + System.Folder.Temp = fallbackTempFolder + showInfo(fmt.Sprintf("Temporary Folder:Fallback to %s", getPlatformPath(System.Folder.Temp))) + + } + err = writeByteToFile(System.File.Settings, []byte(mapToJSON(settings))) if err != nil { return