diff --git a/cmd/cli/cli.go b/cmd/cli/cli.go index 1e9c541..84fa2e0 100644 --- a/cmd/cli/cli.go +++ b/cmd/cli/cli.go @@ -685,13 +685,14 @@ NOTE: Uninstalling will set DNS to values provided by DHCP.`, var files []string // Config file. files = append(files, v.ConfigFileUsed()) - // Log file. - logFile := normalizeLogFilePath(cfg.Service.LogPath) - files = append(files, logFile) - // Backup log file. - oldLogFile := logFile + oldLogSuffix - if _, err := os.Stat(oldLogFile); err == nil { - files = append(files, oldLogFile) + // Log file and backup log file. + // For safety, only process if log file path is absolute. + if logFile := normalizeLogFilePath(cfg.Service.LogPath); filepath.IsAbs(logFile) { + files = append(files, logFile) + oldLogFile := logFile + oldLogSuffix + if _, err := os.Stat(oldLogFile); err == nil { + files = append(files, oldLogFile) + } } // Socket files. if dir, _ := socketDir(); dir != "" { diff --git a/cmd/cli/main.go b/cmd/cli/main.go index b8f6d8d..bafcde1 100644 --- a/cmd/cli/main.go +++ b/cmd/cli/main.go @@ -67,11 +67,8 @@ func Main() { } func normalizeLogFilePath(logFilePath string) string { - // In cleanup mode, we always want the full log file path. - if !cleanup { - if logFilePath == "" || filepath.IsAbs(logFilePath) || service.Interactive() { - return logFilePath - } + if logFilePath == "" || filepath.IsAbs(logFilePath) || service.Interactive() { + return logFilePath } if homedir != "" { return filepath.Join(homedir, logFilePath)