Remove TOCTOU race in unique ID generation using atomic Mkdir

This commit is contained in:
2026-08-29 00:42:34 +02:00
parent 5fcd2b4473
commit b81d74220e
+3 -4
View File
@@ -249,11 +249,10 @@ func generateUniqueID() (string, error) {
id := generateID() id := generateID()
targetDir := filepath.Join(uploadDir, id) targetDir := filepath.Join(uploadDir, id)
if _, err := os.Stat(targetDir); os.IsNotExist(err) { if err := os.Mkdir(targetDir, 0755); err == nil {
if err := os.MkdirAll(targetDir, 0755); err != nil {
return "", err
}
return id, nil return id, nil
} else if !os.IsExist(err) {
return "", err
} }
} }