check for duplicate nspath possibilities
Signed-off-by: Mike Brown <brownwm@us.ibm.com>
This commit is contained in:
parent
e079e4a155
commit
147f0a7e02
@ -52,7 +52,9 @@ import (
|
|||||||
// path to the network namespace.
|
// path to the network namespace.
|
||||||
func newNS(baseDir string) (nsPath string, err error) {
|
func newNS(baseDir string) (nsPath string, err error) {
|
||||||
b := make([]byte, 16)
|
b := make([]byte, 16)
|
||||||
if _, err := rand.Reader.Read(b); err != nil {
|
|
||||||
|
_, err = rand.Read(b)
|
||||||
|
if err != nil {
|
||||||
return "", fmt.Errorf("failed to generate random netns name: %w", err)
|
return "", fmt.Errorf("failed to generate random netns name: %w", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -63,10 +65,10 @@ func newNS(baseDir string) (nsPath string, err error) {
|
|||||||
return "", err
|
return "", err
|
||||||
}
|
}
|
||||||
|
|
||||||
// create an empty file at the mount point
|
// create an empty file at the mount point and fail if it already exists
|
||||||
nsName := fmt.Sprintf("cni-%x-%x-%x-%x-%x", b[0:4], b[4:6], b[6:8], b[8:10], b[10:])
|
nsName := fmt.Sprintf("cni-%x-%x-%x-%x-%x", b[0:4], b[4:6], b[6:8], b[8:10], b[10:])
|
||||||
nsPath = path.Join(baseDir, nsName)
|
nsPath = path.Join(baseDir, nsName)
|
||||||
mountPointFd, err := os.Create(nsPath)
|
mountPointFd, err := os.OpenFile(nsPath, os.O_RDWR|os.O_CREATE|os.O_EXCL, 0666)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return "", err
|
return "", err
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user