Add security to local directory setup

This commit is contained in:
2025-10-17 00:10:08 +02:00
parent 975b72e89f
commit 1a84e44351
2 changed files with 5 additions and 1 deletions

View File

@@ -39,7 +39,7 @@ func main() {
// Setup data directory // Setup data directory
dataDir, err := setupDataDir() dataDir, err := setupDataDir()
if err != nil { if err != nil {
slog.Error("Cannot set data directory: %s; %w", os.Getenv("DATA_DIR"), err) slog.Error("Cannot set data directory", "dir", os.Getenv("DATA_DIR"), "error", err)
os.Exit(1) os.Exit(1)
} }

View File

@@ -14,6 +14,10 @@ func setupDataDir() (string, error) {
dataDir = filepath.Join(".", os.Getenv("DATA_DIR")) dataDir = filepath.Join(".", os.Getenv("DATA_DIR"))
} }
if !filepath.IsLocal(dataDir) {
return "", fmt.Errorf("directory '%s' is not valid or not local", dataDir)
}
if _, err := os.Stat(dataDir); os.IsNotExist(err) { if _, err := os.Stat(dataDir); os.IsNotExist(err) {
err := os.Mkdir(dataDir, 0o755) err := os.Mkdir(dataDir, 0o755)
if err != nil { if err != nil {