fix tmp dir permissions crash
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
This commit is contained in:
@@ -141,7 +141,11 @@ func loadSettings() (settings SettingsStruct, err error) {
|
|||||||
defaults["udpxy"] = ""
|
defaults["udpxy"] = ""
|
||||||
defaults["version"] = System.DBVersion
|
defaults["version"] = System.DBVersion
|
||||||
defaults["xteveAutoUpdate"] = true
|
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
|
// Default Werte setzen
|
||||||
for key, value := range defaults {
|
for key, value := range defaults {
|
||||||
@@ -209,8 +213,26 @@ func saveSettings(settings SettingsStruct) (err error) {
|
|||||||
settings.UserAgent = defaultUserAgent
|
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)
|
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)))
|
err = writeByteToFile(System.File.Settings, []byte(mapToJSON(settings)))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return
|
return
|
||||||
|
|||||||
Reference in New Issue
Block a user