Remove TOCTOU race in unique ID generation using atomic Mkdir
This commit is contained in:
@@ -249,11 +249,10 @@ func generateUniqueID() (string, error) {
|
||||
id := generateID()
|
||||
targetDir := filepath.Join(uploadDir, id)
|
||||
|
||||
if _, err := os.Stat(targetDir); os.IsNotExist(err) {
|
||||
if err := os.MkdirAll(targetDir, 0755); err != nil {
|
||||
return "", err
|
||||
}
|
||||
if err := os.Mkdir(targetDir, 0755); err == nil {
|
||||
return id, nil
|
||||
} else if !os.IsExist(err) {
|
||||
return "", err
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user