runtime: fix the issue of create new socket with abstract address
For the abstract socket adress there's no need to chmod
the address's file, cause the file didn't exist actually.
@@ -90,7 +90,10 @@ func NewSocket(address string) (*net.UnixListener, error) {
sock = socket(address)
path = sock.path()
)
- if !sock.isAbstract() {
+
+ isAbstract := sock.isAbstract()
+
+ if !isAbstract {
if err := os.MkdirAll(filepath.Dir(path), 0600); err != nil {
return nil, errors.Wrapf(err, "%s", path)
}
@@ -99,11 +102,14 @@ func NewSocket(address string) (*net.UnixListener, error) {
if err != nil {
return nil, err
}
+
+ if !isAbstract {
if err := os.Chmod(path, 0600); err != nil {
os.Remove(sock.path())
l.Close()
return nil, err
}
+ }
return l.(*net.UnixListener), nil
}
