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()
|
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
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user