Skip to content

Commit 874083d

Browse files
authored
Replace repeated subscripts with single TrimPrefix (#1176)
This stood out to me while reading the code: [7:] is skipping "unix://", so why not do that? Doing so reveals a bug in the last line changed, where chmod(2) failure would print just the prefix, not everything but it... easy to miss, but now this kind of bug can no longer happen.
1 parent ccda107 commit 874083d

File tree

1 file changed

+12
-11
lines changed

1 file changed

+12
-11
lines changed

src/admin/admin.go

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -238,27 +238,28 @@ func (a *AdminSocket) listen() {
238238
if err == nil {
239239
switch strings.ToLower(u.Scheme) {
240240
case "unix":
241-
if _, err := os.Stat(listenaddr[7:]); err == nil {
242-
a.log.Debugln("Admin socket", listenaddr[7:], "already exists, trying to clean up")
243-
if _, err := net.DialTimeout("unix", listenaddr[7:], time.Second*2); err == nil || err.(net.Error).Timeout() {
244-
a.log.Errorln("Admin socket", listenaddr[7:], "already exists and is in use by another process")
241+
file := strings.TrimPrefix(listenaddr, "unix://")
242+
if _, err := os.Stat(file); err == nil {
243+
a.log.Debugln("Admin socket", file, "already exists, trying to clean up")
244+
if _, err := net.DialTimeout("unix", file, time.Second*2); err == nil || err.(net.Error).Timeout() {
245+
a.log.Errorln("Admin socket", file, "already exists and is in use by another process")
245246
os.Exit(1)
246247
} else {
247-
if err := os.Remove(listenaddr[7:]); err == nil {
248-
a.log.Debugln(listenaddr[7:], "was cleaned up")
248+
if err := os.Remove(file); err == nil {
249+
a.log.Debugln(file, "was cleaned up")
249250
} else {
250-
a.log.Errorln(listenaddr[7:], "already exists and was not cleaned up:", err)
251+
a.log.Errorln(file, "already exists and was not cleaned up:", err)
251252
os.Exit(1)
252253
}
253254
}
254255
}
255-
a.listener, err = net.Listen("unix", listenaddr[7:])
256+
a.listener, err = net.Listen("unix", file)
256257
if err == nil {
257-
switch listenaddr[7:8] {
258+
switch file[:1] {
258259
case "@": // maybe abstract namespace
259260
default:
260-
if err := os.Chmod(listenaddr[7:], 0660); err != nil {
261-
a.log.Warnln("WARNING:", listenaddr[:7], "may have unsafe permissions!")
261+
if err := os.Chmod(file, 0660); err != nil {
262+
a.log.Warnln("WARNING:", file, "may have unsafe permissions!")
262263
}
263264
}
264265
}

0 commit comments

Comments
 (0)